Split the release notes into a separate file for each (active) major branch,
authorTom Lane
Sat, 2 May 2009 20:17:19 +0000 (20:17 +0000)
committerTom Lane
Sat, 2 May 2009 20:17:19 +0000 (20:17 +0000)
as per my recent proposal.  release.sgml itself is now just a stub that should
change rarely; ideally, only once per major release to add a new include line.
Most editing work will occur in the release-N.N.sgml files.  To update a back
branch for a minor release, just copy the appropriate release-N.N.sgml
file(s) into the back branch.

This commit doesn't change the end-product documentation at all, only the
source layout.  However, it makes it easy to start omitting ancient information
from newer branches' documentation, should we ever decide to do that.

doc/src/sgml/Makefile
doc/src/sgml/filelist.sgml
doc/src/sgml/generate_history.pl [new file with mode: 0644]
doc/src/sgml/release-7.4.sgml [new file with mode: 0644]
doc/src/sgml/release-8.0.sgml [new file with mode: 0644]
doc/src/sgml/release-8.1.sgml [new file with mode: 0644]
doc/src/sgml/release-8.2.sgml [new file with mode: 0644]
doc/src/sgml/release-8.3.sgml [new file with mode: 0644]
doc/src/sgml/release-8.4.sgml [new file with mode: 0644]
doc/src/sgml/release-old.sgml [new file with mode: 0644]
doc/src/sgml/release.sgml

index a61d541a4c92dad3f5852b733d411e61af8b93e2..82aacfe38c4f4778b3530000d90de816d45fa80c 100644 (file)
@@ -2,7 +2,7 @@
 #
 # PostgreSQL documentation makefile
 #
-# $PostgreSQL: pgsql/doc/src/sgml/Makefile,v 1.114 2008/12/11 07:34:07 petere Exp $
+# $PostgreSQL: pgsql/doc/src/sgml/Makefile,v 1.115 2009/05/02 20:17:19 tgl Exp $
 #
 #----------------------------------------------------------------------------
 
@@ -173,13 +173,13 @@ JADE.tex.call = $(JADE) $(JADEFLAGS) $(SGMLINCLUDE) $(CATALOG) -d $(srcdir)/styl
 # PostScript from TeX
 postgres.ps:
    $(error Invalid target;  use postgres-A4.ps or postgres-US.ps as targets)
-   
+
 %.ps: %.dvi
    dvips -o $@ $<
 
 postgres.pdf:
    $(error Invalid target;  use postgres-A4.pdf or postgres-US.pdf as targets)
-   
+
 %.pdf: %.tex-pdf
    @rm -f $*.aux $*.log $*.out
 # multiple runs are necessary to create proper intra-document links
@@ -208,12 +208,8 @@ INSTALL HISTORY regress_README: % : %.html
 INSTALL.html: standalone-install.sgml installation.sgml version.sgml
    $(JADE.text) -V nochunks standalone-install.sgml installation.sgml >$@
 
-# remove links to main documentation
-HISTORY.html: release.sgml
-   ( echo ''; \
-     cat $< ) | \
-   $(PERL) -p -0 -e 's/]*>//g' | \
-   $(PERL) -p -e 's/<\/link>//g' >tempfile_HISTORY.sgml
+HISTORY.html: generate_history.pl $(wildcard $(srcdir)/release*.sgml)
+   $(PERL) $< "$(srcdir)" release.sgml >tempfile_HISTORY.sgml
    $(JADE.text) -V nochunks tempfile_HISTORY.sgml >$@
    rm tempfile_HISTORY.sgml
 
index 591f1e86da59c9f5759154de870ea70025f950a9..385b8815f306857485ca2853b0f3e4b98372a169 100644 (file)
@@ -1,4 +1,4 @@
-
+
 
 
 
 
 
 
+
 
+
+
+
+
+
+
+
+
 
 
 
diff --git a/doc/src/sgml/generate_history.pl b/doc/src/sgml/generate_history.pl
new file mode 100644 (file)
index 0000000..20f3d0e
--- /dev/null
@@ -0,0 +1,58 @@
+#! /usr/bin/perl -w
+
+# generate_history.pl -- flatten release notes for use as HISTORY file
+#
+# Usage: generate_history.pl srcdir release.sgml >output.sgml
+#
+# The main point of this script is to strip out  references, which
+# generally point into the rest of the documentation and so can't be used
+# in a standalone build of the release notes.  To make sure this is done
+# everywhere, we have to fold in the sub-files of the release notes.
+#
+# $PostgreSQL: pgsql/doc/src/sgml/generate_history.pl,v 1.1 2009/05/02 20:17:19 tgl Exp $
+
+use strict;
+
+my($srcdir) = shift;
+defined($srcdir) || die "$0: missing required argument: srcdir\n";
+my($infile) = shift;
+defined($infile) || die "$0: missing required argument: inputfile\n";
+
+# Emit DOCTYPE header so that the output is a self-contained SGML document
+print "\n";
+
+process_file($infile);
+
+exit 0;
+
+sub process_file {
+    my($filename) = @_;
+
+    local *FILE;       # need a local filehandle so we can recurse
+
+    my($f) = $srcdir . '/' . $filename;
+    open(FILE, $f) || die "could not read $f: $!\n";
+
+    while () {
+   # Recursively expand sub-files of the release notes
+   if (m/^&(release-.*);$/) {
+       process_file($1 . ".sgml");
+       next;
+   }
+
+   # Remove  tags, which might span multiple lines
+   while (m/
+       if (s/]*>//) {
+       next;
+       }
+       # incomplete tag, so slurp another line
+       $_ .= ;
+   }
+
+   # Remove  too
+   s|||g;
+
+   print;
+    }
+    close(FILE);
+}
diff --git a/doc/src/sgml/release-7.4.sgml b/doc/src/sgml/release-7.4.sgml
new file mode 100644 (file)
index 0000000..7fa8ee7
--- /dev/null
@@ -0,0 +1,3975 @@
+
+
+
+  Release 7.4.25
+
+  
+  Release date
+  2009-03-16
+  
+
+  
+   This release contains a variety of fixes from 7.4.24.
+   For information about new features in the 7.4 major release, see
+   .
+  
+
+  
+   Migration to Version 7.4.25
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Prevent error recursion crashes when encoding conversion fails (Tom)
+     
+
+     
+      This change extends fixes made in the last two minor releases for
+      related failure scenarios.  The previous fixes were narrowly tailored
+      for the original problem reports, but we have now recognized that
+      any error thrown by an encoding conversion function could
+      potentially lead to infinite recursion while trying to report the
+      error.  The solution therefore is to disable translation and encoding
+      conversion and report the plain-ASCII form of any error message,
+      if we find we have gotten into a recursive error reporting situation.
+      (CVE-2009-0922)
+     
+    
+
+    
+     
+      Disallow CREATE CONVERSION with the wrong encodings
+      for the specified conversion function (Heikki)
+     
+
+     
+      This prevents one possible scenario for encoding conversion failure.
+      The previous change is a backstop to guard against other kinds of
+      failures in the same area.
+     
+    
+
+    
+     
+      Fix core dump when to_char() is given format codes that
+      are inappropriate for the type of the data argument (Tom)
+     
+    
+
+    
+     
+      Add MUST (Mauritius Island Summer Time) to the default list
+      of known timezone abbreviations (Xavier Bugaud)
+     
+    
+
+   
+
+  
+
+  Release 7.4.24
+
+  
+  Release date
+  2009-02-02
+  
+
+  
+   This release contains a variety of fixes from 7.4.23.
+   For information about new features in the 7.4 major release, see
+   .
+  
+
+  
+   Migration to Version 7.4.24
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Improve handling of URLs in headline() function (Teodor)
+     
+    
+
+    
+     
+      Improve handling of overlength headlines in headline()
+      function (Teodor)
+     
+    
+
+    
+     
+      Prevent possible Assert failure or misconversion if an encoding
+      conversion is created with the wrong conversion function for the
+      specified pair of encodings (Tom, Heikki)
+     
+    
+
+    
+     
+      Avoid unnecessary locking of small tables in VACUUM
+      (Heikki)
+     
+    
+
+    
+     
+      Fix uninitialized variables in contrib/tsearch2's
+      get_covers() function (Teodor)
+     
+    
+
+    
+     
+      Fix bug in to_char()'s handling of TH
+      format codes (Andreas Scherbaum)
+     
+    
+
+    
+     
+      Make all documentation reference pgsql-bugs and/or
+      pgsql-hackers as appropriate, instead of the
+      now-decommissioned pgsql-ports and pgsql-patches
+      mailing lists (Tom)
+     
+    
+
+   
+
+  
+
+  Release 7.4.23
+
+  
+  Release date
+  2008-11-03
+  
+
+  
+   This release contains a variety of fixes from 7.4.22.
+   For information about new features in the 7.4 major release, see
+   .
+  
+
+  
+   Migration to Version 7.4.23
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Fix backend crash when the client encoding cannot represent a localized
+      error message (Tom)
+     
+
+     
+      We have addressed similar issues before, but it would still fail if
+      the character has no equivalent message itself couldn't
+      be converted.  The fix is to disable localization and send the plain
+      ASCII error message when we detect such a situation.
+     
+    
+
+    
+     
+      Fix incorrect tsearch2 headline generation when single query
+      item matches first word of text (Sushant Sinha)
+     
+    
+
+    
+     
+      Fix improper display of fractional seconds in interval values when
+      using a non-ISO datestyle in an 
+      build (Ron Mayer)
+     
+    
+
+    
+     
+      Ensure SPI_getvalue and SPI_getbinval
+      behave correctly when the passed tuple and tuple descriptor have
+      different numbers of columns (Tom)
+     
+
+     
+      This situation is normal when a table has had columns added or removed,
+      but these two functions didn't handle it properly.
+      The only likely consequence is an incorrect error indication.
+     
+    
+
+    
+     
+      Fix ecpg's parsing of CREATE USER (Michael)
+     
+    
+
+   
+
+  
+
+  Release 7.4.22
+
+  
+  Release date
+  2008-09-22
+  
+
+  
+   This release contains a variety of fixes from 7.4.21.
+   For information about new features in the 7.4 major release, see
+   .
+  
+
+  
+   Migration to Version 7.4.22
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Fix datetime input functions to correctly detect integer overflow when
+      running on a 64-bit platform (Tom)
+     
+    
+
+    
+     
+      Improve performance of writing very long log messages to syslog (Tom)
+     
+    
+
+    
+     
+      Fix bug in backwards scanning of a cursor on a SELECT DISTINCT
+      ON query (Tom)
+     
+    
+
+    
+     
+      Fix planner to estimate that GROUP BY expressions yielding
+      boolean results always result in two groups, regardless of the
+      expressions' contents (Tom)
+     
+
+     
+      This is very substantially more accurate than the regular GROUP
+      BY estimate for certain boolean tests like col
+      IS NULL.
+     
+    
+
+    
+     
+      Improve pg_dump and pg_restore's
+      error reporting after failure to send a SQL command (Tom)
+     
+    
+
+   
+
+  
+
+  Release 7.4.21
+
+  
+  Release date
+  2008-06-12
+  
+
+  
+   This release contains one serious bug fix over 7.4.20.
+   For information about new features in the 7.4 major release, see
+   .
+  
+
+  
+   Migration to Version 7.4.21
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Make pg_get_ruledef() parenthesize negative constants (Tom)
+     
+
+     
+      Before this fix, a negative constant in a view or rule might be dumped
+      as, say, -42::integer, which is subtly incorrect: it should
+      be (-42)::integer due to operator precedence rules.
+      Usually this would make little difference, but it could interact with
+      another recent patch to cause
+      PostgreSQL to reject what had been a valid
+      SELECT DISTINCT view query.  Since this could result in
+      pg_dump output failing to reload, it is being treated
+      as a high-priority fix.  The only released versions in which dump
+      output is actually incorrect are 8.3.1 and 8.2.7.
+     
+    
+
+   
+
+  
+
+  Release 7.4.20
+
+  
+  Release date
+  never released
+  
+
+  
+   This release contains a variety of fixes from 7.4.19.
+   For information about new features in the 7.4 major release, see
+   .
+  
+
+  
+   Migration to Version 7.4.20
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Fix conversions between ISO-8859-5 and other encodings to handle
+      Cyrillic Yo characters (e and E with
+      two dots) (Sergey Burladyan)
+     
+    
+
+    
+     
+      Fix a few datatype input functions
+      that were allowing unused bytes in their results to contain
+      uninitialized, unpredictable values (Tom)
+     
+
+     
+      This could lead to failures in which two apparently identical literal
+      values were not seen as equal, resulting in the parser complaining
+      about unmatched ORDER BY and DISTINCT
+      expressions.
+     
+    
+
+    
+     
+      Fix a corner case in regular-expression substring matching
+      (substring(string from
+      pattern)) (Tom)
+     
+
+     
+      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
+      substring('foo' from 'foo(bar)?').
+      This should return NULL, since (bar) isn't matched, but
+      it was mistakenly returning the whole-pattern match instead (ie,
+      foo).
+     
+    
+
+    
+     
+      Fix incorrect result from ecpg's
+      PGTYPEStimestamp_sub() function (Michael)
+     
+    
+
+    
+     
+      Fix DatumGetBool macro to not fail with gcc
+      4.3 (Tom)
+     
+
+     
+      This problem affects 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.
+     
+    
+
+    
+     
+      Fix longstanding LISTEN/NOTIFY
+      race condition (Tom)
+     
+
+     
+      In rare cases a session that had just executed a
+      LISTEN might not get a notification, even though
+      one would be expected because the concurrent transaction executing
+      NOTIFY was observed to commit later.
+     
+
+     
+      A side effect of the fix is that a transaction that has executed
+      a not-yet-committed LISTEN command will not see any
+      row in pg_listener for the 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.
+     
+    
+
+    
+     
+      Fix display of constant expressions in ORDER BY
+      and GROUP BY (Tom)
+     
+
+     
+      An explictly casted constant would be shown incorrectly.  This could
+      for example lead to corruption of a view definition during
+      dump and reload.
+     
+    
+
+    
+     
+      Fix libpq to handle NOTICE messages correctly
+      during COPY OUT (Tom)
+     
+
+     
+      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.
+     
+    
+
+   
+
+  
+
+  Release 7.4.19
+
+  
+  Release date
+  2008-01-07
+  
+
+  
+   This release contains a variety of fixes from 7.4.18,
+   including fixes for significant security issues.
+   For information about new features in the 7.4 major release, see
+   .
+  
+
+  
+   Migration to Version 7.4.19
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Prevent functions in indexes from executing with the privileges of
+      the user running VACUUM, ANALYZE, etc (Tom)
+     
+
+     
+      Functions used in index expressions and partial-index
+      predicates are evaluated whenever a new table entry is made.  It has
+      long been understood that this poses a risk of trojan-horse code
+      execution if one modifies a table owned by an untrustworthy user.
+      (Note that triggers, defaults, check constraints, etc. pose the
+      same type of risk.)  But functions in indexes pose extra danger
+      because they will be executed by routine maintenance operations
+      such as VACUUM FULL, which are commonly performed
+      automatically under a superuser account.  For example, a nefarious user
+      can execute code with superuser privileges by setting up a
+      trojan-horse index definition and waiting for the next routine vacuum.
+      The fix arranges for standard maintenance operations
+      (including VACUUM, ANALYZE, REINDEX,
+      and CLUSTER) to execute as the table owner rather than
+      the calling user, using the same privilege-switching mechanism already
+      used for SECURITY DEFINER functions.  To prevent bypassing
+      this security measure, execution of SET SESSION
+      AUTHORIZATION and SET ROLE is now forbidden within a
+      SECURITY DEFINER context.  (CVE-2007-6600)
+     
+    
+
+    
+     
+      Repair assorted bugs in the regular-expression package (Tom, Will Drewry)
+     
+
+     
+      Suitably crafted regular-expression patterns could cause crashes,
+      infinite or near-infinite looping, and/or massive memory consumption,
+      all of which pose denial-of-service hazards for applications that
+      accept regex search patterns from untrustworthy sources.
+      (CVE-2007-4769, CVE-2007-4772, CVE-2007-6067)
+     
+    
+
+    
+     
+      Require non-superusers who use /contrib/dblink to use only
+      password authentication, as a security measure (Joe)
+     
+
+     
+      The fix that appeared for this in 7.4.18 was incomplete, as it plugged
+      the hole for only some dblink functions.  (CVE-2007-6601,
+      CVE-2007-3278)
+     
+    
+
+    
+     
+      Fix planner failure in some cases of WHERE false AND var IN
+      (SELECT ...) (Tom)
+     
+    
+
+    
+     
+      Fix potential crash in translate() when using a multibyte
+      database encoding (Tom)
+     
+    
+
+    
+     
+      Fix PL/Python to not crash on long exception messages (Alvaro)
+     
+    
+
+    
+     
+      ecpg parser fixes (Michael)
+     
+    
+
+    
+     
+      Make contrib/tablefunc's crosstab() handle
+      NULL rowid as a category in its own right, rather than crashing (Joe)
+     
+    
+
+    
+     
+      Fix tsvector and tsquery output routines to
+      escape backslashes correctly (Teodor, Bruce)
+     
+    
+
+    
+     
+      Fix crash of to_tsvector() on huge input strings (Teodor)
+     
+    
+
+    
+     
+      Require a specific version of Autoconf to be used
+      when re-generating the configure script (Peter)
+     
+
+     
+      This affects developers and packagers only.  The change was made
+      to prevent accidental use of untested combinations of
+      Autoconf and PostgreSQL versions.
+      You can remove the version check if you really want to use a
+      different Autoconf version, but it's
+      your responsibility whether the result works or not.
+     
+    
+
+   
+
+  
+
+  Release 7.4.18
+
+  
+  Release date
+  2007-09-17
+  
+
+  
+   This release contains fixes from 7.4.17.
+   For information about new features in the 7.4 major release, see
+   .
+  
+
+  
+   Migration to Version 7.4.18
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Prevent index corruption when a transaction inserts rows and
+      then aborts close to the end of a concurrent VACUUM
+      on the same table (Tom)
+     
+    
+
+    
+     
+      Make CREATE DOMAIN ... DEFAULT NULL work properly (Tom)
+     
+    
+
+    
+     
+      Fix excessive logging of SSL error messages (Tom)
+     
+    
+
+    
+     
+      Fix crash when log_min_error_statement logging runs out
+      of memory (Tom)
+     
+    
+
+    
+     
+      Prevent CLUSTER from failing
+      due to attempting to process temporary tables of other sessions (Alvaro)
+     
+    
+
+    
+     
+      Require non-superusers who use /contrib/dblink to use only
+      password authentication, as a security measure (Joe)
+     
+    
+
+   
+
+  
+
+  Release 7.4.17
+
+  
+  Release date
+  2007-04-23
+  
+
+  
+   This release contains fixes from 7.4.16,
+   including a security fix.
+   For information about new features in the 7.4 major release, see
+   .
+  
+
+  
+   Migration to Version 7.4.17
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+    
+     Support explicit placement of the temporary-table schema within
+     search_path, and disable searching it for functions
+     and operators (Tom)
+    
+    
+     This is needed to allow a security-definer function to set a
+     truly secure value of search_path.  Without it,
+     an unprivileged SQL user can use temporary objects to execute code
+     with the privileges of the security-definer function (CVE-2007-2138).
+     See CREATE FUNCTION for more information.
+    
+    
+
+    
+    
+     /contrib/tsearch2 crash fixes (Teodor)
+    
+    
+
+    
+    
+     Fix potential-data-corruption bug in how VACUUM FULL handles
+     UPDATE chains (Tom, Pavan Deolasee)
+    
+    
+
+    
+    
+     Fix PANIC during enlargement of a hash index (bug introduced in 7.4.15)
+     (Tom)
+    
+    
+
+   
+
+  
+
+  Release 7.4.16
+
+  
+  Release date
+  2007-02-05
+  
+
+  
+   This release contains a variety of fixes from 7.4.15, including
+   a security fix.
+   For information about new features in the 7.4 major release, see
+   .
+  
+
+  
+   Migration to Version 7.4.16
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+    
+     Remove security vulnerability that allowed connected users
+     to read backend memory (Tom)
+    
+    
+     The vulnerability involves suppressing the normal check that a SQL
+     function returns the data type it's declared to, or 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.
+    
+    
+
+    
+    
+     Fix rare bug wherein btree index page splits could fail
+     due to choosing an infeasible split point (Heikki Linnakangas)
+    
+    
+
+    
+    
+     Fix for rare Assert() crash triggered by UNION (Tom)
+    
+    
+
+    
+    
+     Tighten security of multi-byte character processing for UTF8 sequences
+     over three bytes long (Tom)
+    
+    
+
+   
+
+  
+
+  Release 7.4.15
+
+  
+  Release date
+  2007-01-08
+  
+
+  
+   This release contains a variety of fixes from 7.4.14.
+   For information about new features in the 7.4 major release, see
+   .
+  
+
+  
+   Migration to Version 7.4.15
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Improve handling of getaddrinfo() on AIX (Tom)
+     
+
+     
+      This fixes a problem with starting the statistics collector,
+      among other things.
+     
+    
+
+     
+      
+       Fix failed to re-find parent key errors in
+       VACUUM (Tom)
+      
+     
+
+     
+      
+       Fix bugs affecting multi-gigabyte hash indexes (Tom)
+      
+     
+
+    
+     
+      Fix error when constructing an ARRAY[] made up of multiple
+      empty elements (Tom)
+     
+    
+
+    
+     
+      to_number() and to_char(numeric)
+      are now STABLE, not IMMUTABLE, for
+      new initdb installs (Tom)
+     
+
+     
+      This is because lc_numeric can potentially
+      change the output of these functions.
+     
+    
+
+    
+     
+      Improve index usage of regular expressions that use parentheses (Tom)
+     
+
+     
+      This improves psql \d performance also.
+     
+    
+
+   
+
+  
+
+  Release 7.4.14
+
+  
+  Release date
+  2006-10-16
+  
+
+  
+   This release contains a variety of fixes from 7.4.13.
+   For information about new features in the 7.4 major release, see
+   .
+  
+
+  
+   Migration to Version 7.4.14
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+
+Fix core dump when an untyped literal is taken as
+ANYARRAY
+Fix string_to_array() to handle overlapping
+ matches for the separator string
+For example, string_to_array('123xx456xxx789', 'xx').
+
+Fix corner cases in pattern matching for
psql's \d commands
+Fix index-corrupting bugs in /contrib/ltree
+ (Teodor)
+Fix backslash escaping in /contrib/dbmirror
+Adjust regression tests for recent changes in US DST laws
+
+
+  
+
+  Release 7.4.13
+
+  
+  Release date
+  2006-05-23
+  
+
+  
+   This release contains a variety of fixes from 7.4.12,
+   including patches for extremely serious security issues.
+   For information about new features in the 7.4 major release, see
+   .
+  
+
+  
+   Migration to Version 7.4.13
+
+   
+    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.
+   
+
+   
+    Full security against the SQL-injection attacks described in
+    CVE-2006-2313 and CVE-2006-2314 might require changes in application
+    code.  If you have applications that embed untrustworthy strings
+    into SQL commands, you should examine them as soon as possible to
+    ensure that they are using recommended escaping techniques.  In
+    most cases, applications should be using subroutines provided by
+    libraries or drivers (such as libpq's
+    PQescapeStringConn()) to perform string escaping,
+    rather than relying on ad hoc code to do it.
+   
+  
+
+  
+   Changes
+
+
+Change the server to reject invalidly-encoded multibyte
+characters in all cases (Tatsuo, Tom)
+While PostgreSQL has been moving in this direction for
+some time, the checks are now applied uniformly to all encodings and all
+textual input, and are now always errors not merely warnings.  This change
+defends against SQL-injection attacks of the type described in CVE-2006-2313.
+
+
+Reject unsafe uses of \' in string literals
+As a server-side defense against SQL-injection attacks of the type
+described in CVE-2006-2314, the server now only accepts '' and not
+\' as a representation of ASCII single quote in SQL string
+literals.  By default, \' is rejected only when
+client_encoding is set to a client-only encoding (SJIS, BIG5, GBK,
+GB18030, or UHC), which is the scenario in which SQL injection is possible.
+A new configuration parameter backslash_quote is available to
+adjust this behavior when needed.  Note that full security against
+CVE-2006-2314 might require client-side changes; the purpose of
+backslash_quote is in part to make it obvious that insecure
+clients are insecure.
+
+
+Modify libpq's string-escaping routines to be
+aware of encoding considerations and
+standard_conforming_strings
+This fixes libpq-using applications for the security
+issues described in CVE-2006-2313 and CVE-2006-2314, and also future-proofs
+them against the planned changeover to SQL-standard string literal syntax.
+Applications that use multiple PostgreSQL connections
+concurrently should migrate to PQescapeStringConn() and
+PQescapeByteaConn() to ensure that escaping is done correctly
+for the settings in use in each database connection.  Applications that
+do string escaping by hand should be modified to rely on library
+routines instead.
+
+
+Fix some incorrect encoding conversion functions
+win1251_to_iso, alt_to_iso,
+euc_tw_to_big5, euc_tw_to_mic,
+mic_to_euc_tw were all broken to varying
+extents.
+
+
+Clean up stray remaining uses of \' in strings
+(Bruce, Jan)
+
+Fix bug that sometimes caused OR'd index scans to
+miss rows they should have returned
+
+Fix WAL replay for case where a btree index has been
+truncated
+
+Fix SIMILAR TO for patterns involving
+| (Tom)
+
+Fix server to use custom DH SSL parameters correctly (Michael
+Fuhr)
+
+Fix for Bonjour on Intel Macs (Ashley Clark)
+
+Fix various minor memory leaks
+
+
+  
+
+  Release 7.4.12
+
+  
+  Release date
+  2006-02-14
+  
+
+  
+   This release contains a variety of fixes from 7.4.11.
+   For information about new features in the 7.4 major release, see
+   .
+  
+
+  
+   Migration to Version 7.4.12
+
+   
+    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.
+   
+  
+
+  
+   Changes
+
+
+
+Fix potential crash in SET
+SESSION AUTHORIZATION (CVE-2006-0553)
+An unprivileged user could crash the server process, resulting in
+momentary denial of service to other users, if the server has been compiled
+with Asserts enabled (which is not the default).
+Thanks to Akio Ishida for reporting this problem.
+
+
+Fix bug with row visibility logic in self-inserted
+rows (Tom)
+Under rare circumstances a row inserted by the current command
+could be seen as already valid, when it should not be.  Repairs bug
+created in 7.4.9 and 7.3.11 releases.
+
+
+Fix race condition that could lead to file already
+exists errors during pg_clog file creation
+(Tom)
+
+Properly check DOMAIN constraints for
+UNKNOWN parameters in prepared statements
+(Neil)
+
+Fix to allow restoring dumps that have cross-schema
+references to custom operators (Tom)
+
+Portability fix for testing presence of finite
+and isinf during configure (Tom)
+
+
+
+  
+
+  Release 7.4.11
+
+  
+  Release date
+  2006-01-09
+  
+
+  
+   This release contains a variety of fixes from 7.4.10.
+   For information about new features in the 7.4 major release, see
+   .
+  
+
+  
+   Migration to Version 7.4.11
+
+   
+    A dump/restore is not required for those running 7.4.X.  However,
+    if you are upgrading from a version earlier than 7.4.8, see the release
+    notes for 7.4.8.
+    Also, you might need to REINDEX indexes on textual
+    columns after updating, if you are affected by the locale or
+    plperl issues described below.
+   
+  
+
+  
+   Changes
+
+
+
+Fix for protocol-level Describe messages issued
+outside a transaction or in a failed transaction (Tom)
+
+Fix character string comparison for locales that consider
+different character combinations as equal, such as Hungarian (Tom)
+This might require REINDEX to fix existing indexes on
+textual columns.
+
+Set locale environment variables during postmaster startup
+to ensure that plperl won't change the locale later
+This fixes a problem that occurred if the postmaster was
+started with environment variables specifying a different locale than what
+initdb had been told.  Under these conditions, any use of
+plperl was likely to lead to corrupt indexes.  You might need
+REINDEX to fix existing indexes on
+textual columns if this has happened to you.
+
+Fix longstanding bug in strpos() and regular expression
+handling in certain rarely used Asian multi-byte character sets (Tatsuo)
+
+
+Fix bug in /contrib/pgcrypto gen_salt,
+which caused it not to use all available salt space for MD5 and
+XDES algorithms (Marko Kreen, Solar Designer)
+Salts for Blowfish and standard DES are unaffected.
+
+Fix /contrib/dblink to throw an error,
+rather than crashing, when the number of columns specified is different from
+what's actually returned by the query (Joe)
+
+
+
+  
+
+  Release 7.4.10
+
+  
+  Release date
+  2005-12-12
+  
+
+  
+   This release contains a variety of fixes from 7.4.9.
+   For information about new features in the 7.4 major release, see
+   .
+  
+
+  
+   Migration to Version 7.4.10
+
+   
+    A dump/restore is not required for those running 7.4.X.  However,
+    if you are upgrading from a version earlier than 7.4.8, see the release
+    notes for 7.4.8.
+   
+  
+
+  
+   Changes
+
+
+
+Fix race condition in transaction log management
+There was a narrow window in which an I/O operation could be initiated
+for the wrong page, leading to an Assert failure or data
+corruption.
+
+
+Prevent failure if client sends Bind protocol message
+when current transaction is already aborted
+
+/contrib/ltree fixes (Teodor)
+
+AIX and HPUX compile fixes (Tom)
+
+Fix longstanding planning error for outer joins
+This bug sometimes caused a bogus error RIGHT JOIN is
+only supported with merge-joinable join conditions.
+
+Prevent core dump in pg_autovacuum when a
+table has been dropped
+
+
+  
+
+  Release 7.4.9
+
+  
+  Release date
+  2005-10-04
+  
+
+  
+   This release contains a variety of fixes from 7.4.8.
+   For information about new features in the 7.4 major release, see
+   .
+  
+
+  
+   Migration to Version 7.4.9
+
+   
+    A dump/restore is not required for those running 7.4.X.  However,
+    if you are upgrading from a version earlier than 7.4.8, see the release
+    notes for 7.4.8.
+   
+  
+
+  
+   Changes
+
+
+Fix error that allowed VACUUM to remove
+ctid chains too soon, and add more checking in code that follows
+ctid links
+This fixes a long-standing problem that could cause crashes in very rare
+circumstances.
+Fix CHAR() to properly pad spaces to the specified
+length when using a multiple-byte character set (Yoshiyuki Asaba)
+In prior releases, the padding of CHAR() was incorrect
+because it only padded to the specified number of bytes without
+considering how many characters were stored.
+Fix the sense of the test for read-only transaction
+in COPY
+The code formerly prohibited COPY TO, where it should
+prohibit COPY FROM.
+
+Fix planning problem with outer-join ON clauses that reference
+only the inner-side relation
+Further fixes for x FULL JOIN y ON true corner
+cases
+Make array_in and array_recv more
+paranoid about validating their OID parameter
+Fix missing rows in queries like UPDATE a=... WHERE
+a... with GiST index on column a
+Improve robustness of datetime parsing
+Improve checking for partially-written WAL
+pages
+Improve robustness of signal handling when SSL is
+enabled
+Don't try to open more than max_files_per_process
+files during postmaster startup
+Various memory leakage fixes
+Various portability improvements
+Fix PL/PgSQL to handle var := var correctly when
+the variable is of pass-by-reference type
+Update contrib/tsearch2 to use current Snowball
+code
+
+
+  
+
+  Release 7.4.8
+
+  
+  Release date
+  2005-05-09
+  
+
+  
+   This release contains a variety of fixes from 7.4.7, including several
+   security-related issues.
+   For information about new features in the 7.4 major release, see
+   .
+  
+
+  
+   Migration to Version 7.4.8
+
+   
+    A dump/restore is not required for those running 7.4.X.  However,
+    it is one possible way of handling two significant security problems
+    that have been found in the initial contents of 7.4.X system
+    catalogs.  A dump/initdb/reload sequence using 7.4.8's initdb will
+    automatically correct these problems.
+   
+
+   
+    The larger 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.)
+   
+
+   
+    The lesser problem is that the contrib/tsearch2 module
+    creates several functions that are misdeclared to return
+    internal when they do not accept internal arguments.
+    This breaks type safety for all functions using internal
+    arguments.
+   
+
+   
+    It is strongly recommended that all installations repair these errors,
+    either by initdb or by following the manual repair procedures given
+    below.  The errors at least allow unprivileged database users to crash
+    their server process, and might allow unprivileged users to gain the
+    privileges of a database superuser.
+   
+
+   
+    If you wish not to do an initdb, perform the following procedures instead.
+    As the database superuser, do:
+
+
+BEGIN;
+UPDATE pg_proc SET proargtypes[3] = 'internal'::regtype
+WHERE pronamespace = 11 AND pronargs = 5
+     AND proargtypes[2] = 'cstring'::regtype;
+-- The command should report having updated 90 rows;
+-- if not, rollback and investigate instead of committing!
+COMMIT;
+
+
+    Next, if you have installed contrib/tsearch2, do:
+
+
+BEGIN;
+UPDATE pg_proc SET proargtypes[0] = 'internal'::regtype
+WHERE oid IN (
+   'dex_init(text)'::regprocedure,
+   'snb_en_init(text)'::regprocedure,
+   'snb_ru_init(text)'::regprocedure,
+   'spell_init(text)'::regprocedure,
+   'syn_init(text)'::regprocedure
+);
+-- The command should report having updated 5 rows;
+-- if not, rollback and investigate instead of committing!
+COMMIT;
+
+
+    If this command fails with a message like function
+    "dex_init(text)" does not exist, then either tsearch2
+    is not installed in this database, or you already did the update.
+   
+
+   
+    The above procedures must be carried out in each database
+    of an installation, including template1, and ideally
+    including template0 as well.  If you do not fix the
+    template databases then any subsequently created databases will contain
+    the same errors.  template1 can be fixed in the same way
+    as any other database, but fixing template0 requires
+    additional steps.  First, from any database issue:
+
+UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
+
+     Next connect to template0 and perform the above repair
+     procedures.  Finally, do:
+
+-- re-freeze template0:
+VACUUM FREEZE;
+-- and protect it against future alterations:
+UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';
+
+   
+  
+
+  
+   Changes
+
+
+Change encoding function signature to prevent
+misuse
+Change contrib/tsearch2 to avoid unsafe use of
+INTERNAL function results
+Repair ancient race condition that allowed a transaction to be
+seen as committed for some purposes (eg SELECT FOR UPDATE) slightly sooner
+than for other purposes
+This is an extremely serious bug since it could lead to apparent
+data inconsistencies being briefly visible to applications.
+Repair race condition between relation extension and
+VACUUM
+This could theoretically have caused loss of a page's worth of
+freshly-inserted data, although the scenario seems of very low probability.
+There are no known cases of it having caused more than an Assert failure.
+
+Fix comparisons of TIME WITH TIME ZONE values
+
+The comparison code was wrong in the case where the
+--enable-integer-datetimes configuration switch had been used.
+NOTE: if you have an index on a TIME WITH TIME ZONE column,
+it will need to be REINDEXed after installing this update, because
+the fix corrects the sort order of column values.
+
+Fix EXTRACT(EPOCH) for
+TIME WITH TIME ZONE values
+Fix mis-display of negative fractional seconds in
+INTERVAL values
+
+This error only occurred when the
+--enable-integer-datetimes configuration switch had been used.
+
+Ensure operations done during backend shutdown are counted by
+statistics collector
+
+This is expected to resolve reports of pg_autovacuum
+not vacuuming the system catalogs often enough — it was not being
+told about catalog deletions caused by temporary table removal during
+backend exit.
+
+Additional buffer overrun checks in plpgsql
+(Neil)
+Fix pg_dump to dump trigger names containing %
+correctly (Neil)
+Fix contrib/pgcrypto for newer OpenSSL builds
+(Marko Kreen)
+Still more 64-bit fixes for
+contrib/intagg
+Prevent incorrect optimization of functions returning
+RECORD
+Prevent to_char(interval) from dumping core for
+month-related formats
+Prevent crash on COALESCE(NULL,NULL)
+Fix array_map to call PL functions correctly
+Fix permission checking in ALTER DATABASE RENAME
+Fix ALTER LANGUAGE RENAME
+Make RemoveFromWaitQueue clean up after itself
+
+This fixes a lock management error that would only be visible if a transaction
+was kicked out of a wait for a lock (typically by query cancel) and then the
+holder of the lock released it within a very narrow window.
+
+Fix problem with untyped parameter appearing in
+INSERT ... SELECT
+Fix CLUSTER failure after
+ALTER TABLE SET WITHOUT OIDS
+
+
+  
+
+  Release 7.4.7
+
+  
+  Release date
+  2005-01-31
+  
+
+  
+   This release contains a variety of fixes from 7.4.6, including several
+   security-related issues.
+   For information about new features in the 7.4 major release, see
+   .
+  
+
+  
+   Migration to Version 7.4.7
+
+   
+    A dump/restore is not required for those running 7.4.X.
+   
+  
+
+  
+   Changes
+
+
+Disallow LOAD to non-superusers
+
+On platforms that will automatically execute initialization functions of a
+shared library (this includes at least Windows and ELF-based Unixen),
+LOAD can be used to make the server execute arbitrary code.
+Thanks to NGS Software for reporting this.
+Check that creator of an aggregate function has the right to
+execute the specified transition functions
+
+This oversight made it possible to bypass denial of EXECUTE
+permission on a function.
+Fix security and 64-bit issues in
+contrib/intagg
+Add needed STRICT marking to some contrib functions (Kris
+Jurka)
+Avoid buffer overrun when plpgsql cursor declaration has too
+many parameters (Neil)
+Fix planning error for FULL and RIGHT outer joins
+
+The result of the join was mistakenly supposed to be sorted the same as the
+left input.  This could not only deliver mis-sorted output to the user, but
+in case of nested merge joins could give outright wrong answers.
+
+Fix plperl for quote marks in tuple fields
+Fix display of negative intervals in SQL and GERMAN
+datestyles
+Make age(timestamptz) do calculation in local timezone not
+GMT
+
+
+  
+
+  Release 7.4.6
+
+  
+  Release date
+  2004-10-22
+  
+
+  
+   This release contains a variety of fixes from 7.4.5.
+   For information about new features in the 7.4 major release, see
+   .
+  
+
+
+  
+   Migration to Version 7.4.6
+
+   
+    A dump/restore is not required for those running 7.4.X.
+   
+  
+
+  
+   Changes
+
+
+Repair possible failure to update hint bits on disk
+
+Under rare circumstances this oversight could lead to
+could not access transaction status failures, which qualifies
+it as a potential-data-loss bug.
+
+Ensure that hashed outer join does not miss tuples
+
+Very large left joins using a hash join plan could fail to output unmatched
+left-side rows given just the right data distribution.
+
+Disallow running pg_ctl as root
+
+This is to guard against any possible security issues.
+
+Avoid using temp files in /tmp in make_oidjoins_check
+
+This has been reported as a security issue, though it's hardly worthy of
+concern since there is no reason for non-developers to use this script anyway.
+
+Prevent forced backend shutdown from re-emitting prior command
+result
+
+In rare cases, a client might think that its last command had succeeded when
+it really had been aborted by forced database shutdown.
+
+Repair bug in pg_stat_get_backend_idset
+
+This could lead to misbehavior in some of the system-statistics views.
+
+Fix small memory leak in postmaster
+Fix expected both swapped tables to have TOAST
+tables bug
+
+This could arise in cases such as CLUSTER after ALTER TABLE DROP COLUMN.
+
+Prevent pg_ctl restart from adding -D multiple times
+Fix problem with NULL values in GiST indexes
+:: is no longer interpreted as a variable in an
+ECPG prepare statement
+
+
+  
+
+  Release 7.4.5
+
+  
+  Release date
+  2004-08-18
+  
+
+  
+   This release contains one serious bug fix over 7.4.4.
+   For information about new features in the 7.4 major release, see
+   .
+  
+
+
+  
+   Migration to Version 7.4.5
+
+   
+    A dump/restore is not required for those running 7.4.X.
+   
+  
+
+  
+   Changes
+
+
+Repair possible crash during concurrent B-tree index insertions
+
+This patch fixes a rare case in which concurrent insertions into a B-tree index
+could result in a server panic.  No permanent damage would result, but it's
+still worth a re-release.  The bug does not exist in pre-7.4 releases.
+
+
+
+  
+
+  Release 7.4.4
+
+  
+  Release date
+  2004-08-16
+  
+
+  
+   This release contains a variety of fixes from 7.4.3.
+   For information about new features in the 7.4 major release, see
+   .
+  
+
+
+  
+   Migration to Version 7.4.4
+
+   
+    A dump/restore is not required for those running 7.4.X.
+   
+  
+
+  
+   Changes
+
+
+Prevent possible loss of committed transactions during crash
+
+Due to insufficient interlocking between transaction commit and checkpointing,
+it was possible for transactions committed just before the most recent
+checkpoint to be lost, in whole or in part, following a database crash and
+restart.  This is a serious bug that has existed
+since PostgreSQL 7.1.
+
+Check HAVING restriction before evaluating result list of an
+aggregate plan
+Avoid crash when session's current user ID is deleted
+Fix hashed crosstab for zero-rows case (Joe)
+Force cache update after renaming a column in a foreign key
+Pretty-print UNION queries correctly
+Make psql handle \r\n newlines properly in COPY IN
+pg_dump handled ACLs with grant options incorrectly
+Fix thread support for OS X and Solaris
+Updated JDBC driver (build 215) with various fixes
+ECPG fixes
+Translation updates (various contributors)
+
+
+  
+
+  Release 7.4.3
+
+  
+  Release date
+  2004-06-14
+  
+
+  
+   This release contains a variety of fixes from 7.4.2.
+   For information about new features in the 7.4 major release, see
+   .
+  
+
+
+  
+   Migration to Version 7.4.3
+
+   
+    A dump/restore is not required for those running 7.4.X.
+   
+  
+
+  
+   Changes
+
+
+Fix temporary memory leak when using non-hashed aggregates (Tom)
+ECPG fixes, including some for Informix compatibility (Michael)
+Fixes for compiling with thread-safety, particularly Solaris (Bruce)
+Fix error in COPY IN termination when using the old network protocol (ljb)
+Several important fixes in pg_autovacuum, including fixes for
+large tables, unsigned oids, stability, temp tables, and debug mode
+(Matthew T. O'Connor)
+Fix problem with reading tar-format dumps on NetBSD and BSD/OS (Bruce)
+Several JDBC fixes
+Fix ALTER SEQUENCE RESTART where last_value equals the restart value (Tom)
+Repair failure to recalculate nested sub-selects (Tom)
+Fix problems with non-constant expressions in LIMIT/OFFSET
+Support FULL JOIN with no join clause, such as X FULL JOIN Y ON TRUE (Tom)
+Fix another zero-column table bug (Tom)
+Improve handling of non-qualified identifiers in GROUP BY clauses in sub-selects (Tom)
+
+Select-list aliases within the sub-select will now take precedence over
+names from outer query levels.
+
+Do not generate NATURAL CROSS JOIN when decompiling rules (Tom)
+Add checks for invalid field length in binary COPY (Tom)
+
+ This fixes a difficult-to-exploit security hole.
+
+Avoid locking conflict between ANALYZE and LISTEN/NOTIFY
+Numerous translation updates (various contributors)
+
+
+  
+
+  Release 7.4.2
+
+  
+  Release date
+  2004-03-08
+  
+
+  
+   This release contains a variety of fixes from 7.4.1.
+   For information about new features in the 7.4 major release, see
+   .
+  
+
+
+  
+   Migration to Version 7.4.2
+
+   
+    A dump/restore is not required for those running 7.4.X.  However,
+    it might 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.
+   
+
+   
+    The more severe of the two errors is that data type anyarray
+    has the wrong alignment label; this is a problem because the
+    pg_statistic system catalog uses anyarray
+    columns.  The mislabeling can cause planner misestimations and even
+    crashes when planning queries that involve WHERE clauses on
+    double-aligned columns (such as float8 and timestamp).
+    It is strongly recommended that all installations repair this error,
+    either by initdb or by following the manual repair procedure given
+    below.
+   
+
+   
+    The lesser error is that the system view pg_settings
+    ought to be marked as having public update access, to allow
+    UPDATE pg_settings to be used as a substitute for
+    SET.  This can also be fixed either by initdb or manually,
+    but it is not necessary to fix unless you want to use UPDATE
+    pg_settings.
+   
+
+   
+    If you wish not to do an initdb, the following procedure will work
+    for fixing pg_statistic.  As the database superuser,
+    do:
+
+
+-- 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;
+
+
+    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 pg_statistic.
+   
+
+   
+    To repair the pg_settings error, simply do:
+
+GRANT SELECT, UPDATE ON pg_settings TO PUBLIC;
+
+   
+
+   
+    The above procedures must be carried out in each database
+    of an installation, including template1, and ideally
+    including template0 as well.  If you do not fix the
+    template databases then any subsequently created databases will contain
+    the same errors.  template1 can be fixed in the same way
+    as any other database, but fixing template0 requires
+    additional steps.  First, from any database issue:
+
+UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
+
+     Next connect to template0 and perform the above repair
+     procedures.  Finally, do:
+
+-- re-freeze template0:
+VACUUM FREEZE;
+-- and protect it against future alterations:
+UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';
+
+   
+  
+
+  
+   Changes
+
+
+   Release 7.4.2 incorporates all the fixes included in release 7.3.6,
+   plus the following fixes:
+
+
+
+Fix pg_statistics alignment bug that could crash optimizer
+See above for details about this problem.
+Allow non-super users to update pg_settings
+Fix several optimizer bugs, most of which led to
+variable not found in subplan target lists errors
+Avoid out-of-memory failure during startup of large multiple
+index scan
+Fix multibyte problem that could lead to out of
+memory error during COPY IN
+Fix problems with SELECT INTO / CREATE
+TABLE AS from tables without OIDs
+Fix problems with alter_table regression test
+during parallel testing
+Fix problems with hitting open file limit, especially on OS X (Tom)
+Partial fix for Turkish-locale issues
+initdb will succeed now in Turkish locale, but there are still some
+inconveniences associated with the i/I problem.
+Make pg_dump set client encoding on restore
+Other minor pg_dump fixes
+Allow ecpg to again use C keywords as column names (Michael)
+Added ecpg WHENEVER NOT_FOUND to
+SELECT/INSERT/UPDATE/DELETE (Michael)
+Fix ecpg crash for queries calling set-returning functions (Michael)
+Various other ecpg fixes (Michael)
+Fixes for Borland compiler
+Thread build improvements (Bruce)
+Various other build fixes
+Various JDBC fixes
+
+
+  
+
+  Release 7.4.1
+
+  
+  Release date
+  2003-12-22
+  
+
+  
+   This release contains a variety of fixes from 7.4.
+   For information about new features in the 7.4 major release, see
+   .
+  
+
+
+  
+   Migration to Version 7.4.1
+
+   
+    A dump/restore is not required for those
+    running 7.4.
+   
+
+   
+    If you want to install the fixes in the information schema
+    you need to reload it into the database.
+    This is either accomplished by initializing a new cluster
+    by running initdb, or by running the following
+    sequence of SQL commands in each database (ideally including
+    template1) as a superuser in
+    psql, after installing the new release:
+
+DROP SCHEMA information_schema CASCADE;
+\i /usr/local/pgsql/share/information_schema.sql
+
+    Substitute your installation path in the second command.
+   
+
+  
+
+  
+   Changes
+
+
+Fixed bug in CREATE SCHEMA parsing in ECPG (Michael)
+Fix compile error when  and  are used together (Peter)
+Fix for subqueries that used hash joins (Tom)
+
+   Certain subqueries that used hash joins would crash because of
+   improperly shared structures.
+
+Fix free space map compaction bug (Tom)
+
+   This fixes a bug where compaction of the free space map could lead
+   to a database server shutdown.
+
+
+Fix for Borland compiler build of libpq (Bruce)
+Fix netmask() and hostmask() to return the maximum-length masklen (Tom)
+
+   Fix these functions to return values consistent with pre-7.4
+   releases.
+
+
+Several contrib/pg_autovacuum fixes
+
+   Fixes include improper variable initialization, missing vacuum after
+   TRUNCATE, and duration computation overflow for long vacuums.
+
+
+Allow compile of contrib/cube under Cygwin (Jason Tishler)
+Fix Solaris use of password file when no passwords are defined (Tom)
+
+   Fix crash on Solaris caused by use of any type of password
+   authentication when no passwords were defined.
+
+
+JDBC fix for thread problems, other fixes
+Fix for bytea index lookups (Joe)
+Fix information schema for bit data types (Peter)
+Force zero_damaged_pages to be on during recovery from WAL
+Prevent some obscure cases of variable not in subplan target lists
+Make PQescapeBytea and byteaout consistent with each other (Joe)
+Escape bytea output for bytes > 0x7e(Joe)
+
+ If different client encodings are used for bytea output and input, it
+ is possible for bytea values to be corrupted by the differing
+ encodings.  This fix escapes all bytes that might be affected.
+
+
+Added missing SPI_finish() calls to dblink's get_tuple_of_interest() (Joe)
+New Czech FAQ
+Fix information schema view constraint_column_usage for foreign keys (Peter)
+ECPG fixes (Michael)
+Fix bug with multiple IN subqueries and joins in the subqueries (Tom)
+Allow COUNT('x') to work (Tom)
+Install ECPG include files for Informix compatibility into separate directory (Peter)
+
+ Some names of ECPG include files for Informix compatibility conflicted with operating system include files.
+ By installing them in their own directory, name conflicts have been reduced.
+
+
+Fix SSL memory leak (Neil)
+
+ This release fixes a bug in 7.4 where SSL didn't free all memory it allocated.
+
+
+Prevent pg_service.conf from using service name as default dbname (Bruce)
+Fix local ident authentication on FreeBSD (Tom)
+
+
+
+
+
Release 7.4
+
+  Release date
+  2003-11-17
+
+  Overview
+
+  
+   Major changes in this release:
+  
+
+  
+   
+    
+     IN / NOT IN subqueries are
+     now much more efficient
+    
+
+    
+     
+      In previous releases, IN/NOT
+      IN subqueries were joined to the upper query by
+      sequentially scanning the subquery looking for a match.  The
+      7.4 code uses the same sophisticated techniques used by
+      ordinary joins and so is much faster.  An
+      IN will now usually be as fast as or faster
+      than an equivalent EXISTS subquery; this
+      reverses the conventional wisdom that applied to previous
+      releases.
+     
+    
+   
+
+   
+    
+     Improved GROUP BY processing by using hash buckets
+    
+
+    
+     
+      In previous releases, rows to be grouped had to be sorted
+      first.  The 7.4 code can do GROUP BY
+      without sorting, by accumulating results into a hash table
+      with one entry per group.  It will still use the sort
+      technique, however, if the hash table is estimated to be too
+      large to fit in sort_mem.
+     
+    
+   
+
+   
+    
+     New multikey hash join capability
+    
+
+    
+     
+      In previous releases, hash joins could only occur on single
+      keys.  This release allows multicolumn hash joins.
+     
+    
+   
+
+   
+    
+     Queries using the explicit JOIN syntax are
+     now better optimized
+    
+
+    
+     
+      Prior releases evaluated queries using the explicit
+      JOIN syntax only in the order implied by
+      the syntax. 7.4 allows full optimization of these queries,
+      meaning the optimizer considers all possible join orderings
+      and chooses the most efficient.  Outer joins, however, must
+      still follow the declared ordering.
+     
+    
+   
+
+   
+    
+     Faster and more powerful regular expression code
+    
+
+    
+     
+      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.
+     
+    
+   
+
+   
+    
+     Function-inlining for simple SQL functions
+    
+
+    
+     
+      Simple SQL functions can now be inlined by including their SQL
+      in the main query.  This improves performance by eliminating
+      per-call overhead.  That means simple SQL functions now
+      behave like macros.
+     
+    
+   
+
+   
+    
+     Full support for IPv6 connections and IPv6 address data types
+    
+
+    
+     
+      Previous releases allowed only IPv4 connections, and the IP
+      data types only supported IPv4 addresses. This release adds
+      full IPv6 support in both of these areas.
+     
+    
+   
+
+   
+    
+     Major improvements in SSL performance and reliability
+    
+
+    
+     
+      Several people very familiar with the SSL API have overhauled
+      our SSL code to improve SSL key negotiation and error
+      recovery.
+     
+    
+   
+
+   
+    
+     Make free space map efficiently reuse empty index pages,
+     and other free space management improvements
+    
+
+    
+     
+      In previous releases, B-tree index pages that were left empty
+      because of deleted rows could only be reused by rows with
+      index values similar to the rows originally indexed on that
+      page. In 7.4, VACUUM records empty index
+      pages and allows them to be reused for any future index rows.
+     
+    
+   
+
+   
+    
+     SQL-standard information schema
+    
+
+    
+     
+      The information schema provides a standardized and stable way
+      to access information about the schema objects defined in a
+      database.
+     
+    
+   
+
+   
+    
+     Cursors conform more closely to the SQL standard
+    
+
+    
+     
+      The commands FETCH and
+      MOVE have been overhauled to conform more
+      closely to the SQL standard.
+     
+    
+   
+
+   
+    
+     Cursors can exist outside transactions
+    
+
+    
+     
+      These cursors are also called holdable cursors.
+     
+    
+   
+
+   
+    
+     New client-to-server protocol
+    
+
+    
+     
+      The new protocol adds error codes, more status information,
+      faster startup, better support for binary data transmission,
+      parameter values separated from SQL commands, prepared
+      statements available at the protocol level, and cleaner
+      recovery from COPY failures.  The older
+      protocol is still supported by both server and clients.
+     
+    
+   
+
+   
+    
+     libpq and
+     ECPG applications are now fully
+     thread-safe
+    
+
+    
+     
+      While previous libpq releases
+      already supported threads, this release improves thread safety
+      by fixing some non-thread-safe code that was used during
+      database connection startup.  The configure
+      option  must be used to
+      enable this feature.
+     
+    
+   
+
+   
+    
+     New version of full-text indexing
+    
+
+    
+     
+      A new full-text indexing suite is available in
+      contrib/tsearch2.
+     
+    
+   
+
+   
+    
+     New autovacuum tool
+    
+
+    
+     
+      The new autovacuum tool in
+      contrib/autovacuum monitors the database
+      statistics tables for
+      INSERT/UPDATE/DELETE
+      activity and automatically vacuums tables when needed.
+     
+    
+   
+
+   
+    
+     Array handling has been improved and moved into the server core
+    
+
+    
+     
+      Many array limitations have been removed, and arrays behave
+      more like fully-supported data types.
+     
+    
+   
+
+  
+
+  Migration to Version 7.4
+
+  
+   A dump/restore using pg_dump is
+   required for those wishing to migrate data from any previous
+   release.
+  
+
+  
+   Observe the following incompatibilities:
+  
+
+  
+   
+    
+     The server-side autocommit setting was removed and
+     reimplemented in client applications and languages.
+     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 APIs as appropriate.
+    
+   
+
+   
+    
+     Error message wording has changed substantially in this
+     release.  Significant effort was invested to make the messages
+     more consistent and user-oriented.  If your applications try to
+     detect different error conditions by parsing the error message,
+     you are strongly encouraged to use the new error code facility instead.
+    
+   
+
+   
+    
+     Inner joins using the explicit JOIN syntax
+     might behave differently because they are now better
+     optimized.
+    
+   
+
+   
+    
+     A number of server configuration parameters have been renamed
+     for clarity, primarily those related to
+     logging.
+    
+   
+
+   
+    
+     FETCH 0 or MOVE 0 now
+     does nothing.  In prior releases, FETCH 0
+     would fetch all remaining rows, and MOVE 0
+     would move to the end of the cursor.
+    
+   
+
+   
+    
+     FETCH and MOVE now return
+     the actual number of rows fetched/moved, or zero if at the
+     beginning/end of the cursor.  Prior releases would return the
+     row count passed to the command, not the number of rows
+     actually fetched or moved.
+    
+   
+
+   
+    
+     COPY now can process files that use
+     carriage-return or carriage-return/line-feed end-of-line
+     sequences. Literal carriage-returns and line-feeds are no
+     longer accepted in data values; use \r and
+     \n instead.
+    
+   
+
+   
+    
+     Trailing spaces are now trimmed when converting from type
+     char(n) to
+     varchar(n) or text.
+     This is what most people always expected to happen anyway.
+    
+   
+
+   
+    
+     The data type float(p) now
+     measures p in binary digits, not decimal
+     digits.  The new behavior follows the SQL standard.
+    
+   
+
+   
+    
+     Ambiguous date values now must match the ordering specified by
+     the datestyle setting.  In prior releases, a
+     date specification of 10/20/03 was interpreted as a
+     date in October even if datestyle specified that
+     the day should be first.  7.4 will throw an error if a date
+     specification is invalid for the current setting of
+     datestyle.
+    
+   
+
+   
+    
+     The functions oidrand,
+     oidsrand, and
+     userfntest have been removed.  These
+     functions were determined to be no longer useful.
+    
+   
+
+   
+    
+     String literals specifying time-varying date/time values, such
+     as 'now' or 'today' will
+     no longer work as expected in column default expressions; they
+     now cause the time of the table creation to be the default, not
+     the time of the insertion.  Functions such as
+     now(), current_timestamp, or
+     current_date should be used instead.
+    
+
+    
+     In previous releases, there was special code so that strings
+     such as 'now' were 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 functions such
+     as now() or current_timestamp. These
+     will work in all situations.
+    
+   
+
+   
+    
+     The dollar sign ($) is no longer allowed in
+     operator names.  It can instead be a non-first character in
+     identifiers.  This was done to improve compatibility with other
+     database systems, and to avoid syntax problems when parameter
+     placeholders ($n) are written
+     adjacent to operators.
+    
+   
+
+  
+
+  Changes
+
+  
+   Below you will find a detailed account of the changes between
+   release 7.4 and the previous major release.
+  
+
+  Server Operation Changes
+
+  
+   
+    
+     Allow IPv6 server connections (Nigel Kukard, Johan Jordaan,
+     Bruce, Tom, Kurt Roeckx, Andrew Dunstan)
+    
+   
+
+   
+    
+     Fix SSL to handle errors cleanly (Nathan Mueller)
+    
+    
+     In prior releases, certain SSL API error reports were not
+     handled correctly.  This release fixes those problems.
+    
+   
+
+   
+    
+     SSL protocol security and performance improvements (Sean Chittenden)
+    
+    
+     SSL key renegotiation was happening too frequently, causing poor
+     SSL performance.  Also, initial key handling was improved.
+    
+   
+
+   
+    
+     Print lock information when a deadlock is detected (Tom)
+    
+    
+     This allows easier debugging of deadlock situations.
+    
+   
+
+   
+    
+     Update /tmp socket modification times
+     regularly to avoid their removal (Tom)
+    
+    
+     This should help prevent /tmp directory
+     cleaner administration scripts from removing server socket
+     files.
+    
+   
+
+   Enable PAM for Mac OS X (Aaron Hillegass)
+
+   
+    Make B-tree indexes fully WAL-safe (Tom)
+    
+     In prior releases, under certain rare cases, a server crash
+     could cause B-tree indexes to become corrupt. This release
+     removes those last few rare cases.
+    
+   
+
+   Allow B-tree index compaction and empty page reuse (Tom)
+
+   
+    
+     Fix inconsistent index lookups during split of first root page (Tom)
+    
+    
+     In prior releases, when a single-page index split into two
+     pages, there was a brief period when another database session
+     could miss seeing an index entry.  This release fixes that rare
+     failure case.
+    
+   
+
+   Improve free space map allocation logic (Tom)
+
+   
+    Preserve free space information between server restarts (Tom)
+    
+     In prior releases, the free space map was not saved when the
+     postmaster was stopped, so newly started servers had no free
+     space information. This release saves the free space map, and
+     reloads it when the server is restarted.
+    
+   
+
+   Add start time to pg_stat_activity (Neil)
+   New code to detect corrupt disk pages; erase with zero_damaged_pages (Tom)
+   New client/server protocol: faster, no username length limit, allow clean exit from COPY (Tom)
+   Add transaction status, table ID, column ID to client/server protocol (Tom)
+   Add binary I/O to client/server protocol (Tom)
+   Remove autocommit server setting; move to client applications (Tom)
+   New error message wording, error codes, and three levels of error detail (Tom, Joe, Peter)
+  
+
+  Performance Improvements
+
+  
+   Add hashing for GROUP BY aggregates (Tom)
+   Make nested-loop joins be smarter about multicolumn indexes (Tom)
+   Allow multikey hash joins (Tom)
+   Improve constant folding (Tom)
+   Add ability to inline simple SQL functions (Tom)
+
+   
+    Reduce memory usage for queries using complex functions (Tom)
+    
+     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.
+    
+   
+
+   
+    Improve GEQO optimizer performance (Tom)
+    
+     This release fixes several inefficiencies in the way the GEQO optimizer
+     manages potential query paths.
+    
+   
+
+   
+    
+     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)
+    
+   
+
+   
+    
+     Pattern matching operations can use indexes regardless of
+     locale (Peter)
+    
+    
+     There is no way for non-ASCII locales to use the standard
+     indexes for LIKE comparisons. This release
+     adds a way to create a special index for
+     LIKE.
+    
+   
+
+   
+    Allow the postmaster to preload libraries using preload_libraries (Joe)
+    
+     For shared libraries that require a long time to load, this
+     option is available so the library can be preloaded in the
+     postmaster and inherited by all database sessions.
+    
+   
+
+   
+    
+     Improve optimizer cost computations, particularly for subqueries (Tom)
+    
+   
+
+   
+    
+     Avoid sort when subquery ORDER BY matches upper query (Tom)
+    
+   
+
+   
+    
+     Deduce that WHERE a.x = b.y AND b.y = 42 also
+     means a.x = 42 (Tom)
+    
+   
+
+   
+    
+     Allow hash/merge joins on complex joins (Tom)
+    
+   
+
+   
+    
+     Allow hash joins for more data types (Tom)
+    
+   
+
+   
+    
+     Allow join optimization of explicit inner joins, disable with
+     join_collapse_limit (Tom)
+    
+   
+
+   
+    
+     Add parameter from_collapse_limit to control
+     conversion of subqueries to joins (Tom)
+    
+   
+
+   
+    
+     Use faster and more powerful regular expression code from Tcl
+     (Henry Spencer, Tom)
+    
+   
+
+   
+    
+     Use bit-mapped relation sets in the optimizer (Tom)
+    
+   
+
+   
+    Improve connection startup time (Tom)
+    
+     The new client/server protocol requires fewer network packets to
+     start a database session.
+    
+   
+
+   
+    
+     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)
+    
+     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 B-tree and hash index performance.
+    
+   
+
+   
+    Align shared buffers on 32-byte boundary for copy speed improvement (Manfred Spraul)
+    
+     Certain CPU's perform faster data copies when addresses are
+     32-byte aligned.
+    
+   
+
+   
+    Data type numeric reimplemented for better performance (Tom)
+    
+     numeric used to be stored in base 100. The new code
+     uses base 10000, for significantly better performance.
+    
+   
+  
+
+  Server Configuration Changes
+
+  
+   
+    Rename server parameter server_min_messages to log_min_messages (Bruce)
+    
+     This was done so most parameters that control the server logs
+     begin with log_.
+    
+   
+
+   Rename show_*_stats to log_*_stats (Bruce)
+   Rename show_source_port to log_source_port (Bruce)
+   Rename hostname_lookup to log_hostname (Bruce)
+
+   
+    Add checkpoint_warning to warn of excessive checkpointing (Bruce)
+    
+     In prior releases, it was difficult to determine if checkpoint
+     was happening too frequently. This feature adds a warning to the
+     server logs when excessive checkpointing happens.
+    
+   
+
+   New read-only server parameters for localization (Tom)
+
+   
+    
+     Change debug server log messages to output as DEBUG
+     rather than LOG (Bruce)
+    
+   
+
+   
+    Prevent server log variables from being turned off by non-superusers (Bruce)
+    
+     This is a security feature so non-superusers cannot disable
+     logging that was enabled by the administrator.
+    
+   
+
+   
+    
+     log_min_messages/client_min_messages now
+     controls debug_* output (Bruce)
+    
+    
+     This centralizes client debug information so all debug output
+     can be sent to either the client or server logs.
+    
+   
+
+   
+    Add Mac OS X Rendezvous server support (Chris Campbell)
+    
+     This allows Mac OS X hosts to query the network for available
+     PostgreSQL servers.
+    
+   
+
+   
+    
+     Add ability to print only slow statements using
+     log_min_duration_statement
+     (Christopher)
+    
+    
+     This is an often requested debugging feature that allows
+     administrators to see only slow queries in their server logs.
+    
+   
+
+   
+    Allow pg_hba.conf to accept netmasks in CIDR format (Andrew Dunstan)
+    
+     This allows administrators to merge the host IP address and
+     netmask fields into a single CIDR field in pg_hba.conf.
+    
+   
+
+   New read-only parameter is_superuser (Tom)
+
+   
+    New parameter log_error_verbosity to control error detail (Tom)
+    
+     This works with the new error reporting feature to supply
+     additional error information like hints, file names and line
+     numbers.
+    
+   
+
+   
+    postgres --describe-config now dumps server config variables (Aizaz Ahmed, Peter)
+    
+     This option is useful for administration tools that need to know
+     the configuration variable names and their minimums, maximums,
+     defaults, and descriptions.
+    
+   
+
+   
+    
+     Add new columns in pg_settings:
+     context, type, source,
+     min_val, max_val (Joe)
+    
+   
+
+   
+    
+     Make default shared_buffers 1000 and
+     max_connections 100, if possible (Tom)
+    
+    
+     Prior versions defaulted to 64 shared buffers so PostgreSQL
+     would start on even very old systems. This release tests the
+     amount of shared memory allowed by the platform and selects more
+     reasonable default values if possible.  Of course, users are
+     still encouraged to evaluate their resource load and size
+     shared_buffers accordingly.
+    
+   
+
+   
+    
+     New pg_hba.conf record type
+     hostnossl to prevent SSL connections (Jon
+     Jensen)
+    
+    
+     In prior releases, there was no way to prevent SSL connections
+     if both the client and server supported SSL. This option allows
+     that capability.
+    
+   
+
+   
+    
+     Remove parameter geqo_random_seed
+     (Tom)
+    
+   
+
+   
+    
+     Add server parameter regex_flavor to control regular expression processing (Tom)
+    
+   
+
+   
+    
+     Make pg_ctl better handle nonstandard ports (Greg)
+    
+   
+  
+
+  Query Changes
+
+  
+   New SQL-standard information schema (Peter)
+   Add read-only transactions (Peter)
+   Print key name and value in foreign-key violation messages (Dmitry Tkach)
+
+   
+    Allow users to see their own queries in pg_stat_activity (Kevin Brown)
+    
+     In prior releases, only the superuser could see query strings
+     using pg_stat_activity. Now ordinary users
+     can see their own query strings.
+    
+   
+
+   
+    Fix aggregates in subqueries to match SQL standard (Tom)
+    
+     The SQL standard says that an aggregate function appearing
+     within a nested subquery belongs to the outer query if its
+     argument contains only outer-query variables.  Prior
+     PostgreSQL releases did not handle
+     this fine point correctly.
+    
+   
+
+   
+    Add option to prevent auto-addition of tables referenced in query (Nigel J. Andrews)
+    
+     By default, tables mentioned in the query are automatically
+     added to the FROM clause if they are not already
+     there.  This is compatible with historic
+     POSTGRES behavior but is contrary to
+     the SQL standard.  This option allows selecting
+     standard-compatible behavior.
+    
+   
+
+   
+    Allow UPDATE ... SET col = DEFAULT (Rod)
+    
+     This allows UPDATE to set a column to its
+     declared default value.
+    
+   
+
+   
+    Allow expressions to be used in LIMIT/OFFSET (Tom)
+    
+     In prior releases, LIMIT/OFFSET could
+     only use constants, not expressions.
+    
+   
+
+   
+    Implement CREATE TABLE AS EXECUTE (Neil, Peter)
+   
+  
+
+  Object Manipulation Changes
+
+  
+   
+    Make CREATE SEQUENCE grammar more conforming to SQL:2003 (Neil)
+   
+
+   
+    Add statement-level triggers (Neil)
+    
+     While this allows a trigger to fire at the end of a statement,
+     it does not allow the trigger to access all rows modified by the
+     statement.  This capability is planned for a future release.
+    
+   
+
+   
+    Add check constraints for domains (Rod)
+    
+     This greatly increases the usefulness of domains by allowing
+     them to use check constraints.
+    
+   
+
+   
+    Add ALTER DOMAIN (Rod)
+    
+     This allows manipulation of existing domains.
+    
+   
+
+   
+    Fix several zero-column table bugs (Tom)
+    
+     PostgreSQL supports zero-column tables. This fixes various bugs
+     that occur when using such tables.
+    
+   
+
+   
+    Have ALTER TABLE ... ADD PRIMARY KEY add not-null constraint (Rod)
+    
+     In prior releases, ALTER TABLE ... ADD
+     PRIMARY would add a unique index, but not a not-null
+     constraint.  That is fixed in this release.
+    
+   
+
+   Add ALTER TABLE ... WITHOUT OIDS (Rod)
+    
+     This allows control over whether new and updated rows will have
+     an OID column.  This is most useful for saving storage space.
+    
+   
+
+   
+    
+     Add ALTER SEQUENCE to modify minimum, maximum,
+     increment, cache, cycle values (Rod)
+    
+   
+
+   
+    Add ALTER TABLE ... CLUSTER ON (Alvaro Herrera)
+    
+     This command is used by pg_dump to record the
+     cluster column for each table previously clustered. This
+     information is used by database-wide cluster to cluster all
+     previously clustered tables.
+    
+   
+
+   Improve automatic type casting for domains (Rod, Tom)
+   Allow dollar signs in identifiers, except as first character (Tom)
+   Disallow dollar signs in operator names, so x=$1 works (Tom)
+
+   
+    
+     Allow copying table schema using LIKE
+     subtable, also SQL:2003
+     feature INCLUDING DEFAULTS (Rod)
+    
+   
+
+   
+    
+     Add WITH GRANT OPTION clause to
+     GRANT (Peter)
+    
+    
+     This enabled GRANT to give other users the
+     ability to grant privileges on a object.
+    
+   
+  
+
+  Utility Command Changes
+
+  
+   
+    Add ON COMMIT clause to CREATE TABLE for temporary tables (Gavin)
+    
+     This adds the ability for a table to be dropped or all rows
+     deleted on transaction commit.
+    
+   
+
+   
+    Allow cursors outside transactions using WITH HOLD (Neil)
+    
+     In previous releases, cursors were removed at the end of the
+     transaction that created them. Cursors can now be created with
+     the WITH HOLD option, which allows them to
+     continue to be accessed after the creating transaction has
+     committed.
+    
+   
+
+   
+    FETCH 0 and MOVE 0  now do nothing (Bruce)
+    
+     In previous releases, FETCH 0 fetched all
+     remaining rows, and MOVE 0 moved to the end
+     of the cursor.
+    
+   
+
+   
+    
+     Cause FETCH and MOVE to
+     return the number of rows fetched/moved, or zero if at the
+     beginning/end of cursor, per SQL standard (Bruce)
+    
+    
+     In prior releases, the row count returned by
+     FETCH and MOVE did not
+     accurately reflect the number of rows processed.
+    
+   
+
+   
+    Properly handle SCROLL with cursors, or
+    report an error (Neil)
+    
+     Allowing random access (both forward and backward scrolling) to
+     some kinds of queries cannot be done without some additional
+     work. If SCROLL is specified when the cursor
+     is created, this additional work will be performed. Furthermore,
+     if the cursor has been created with NO SCROLL,
+     no random access is allowed.
+    
+   
+
+   
+    
+     Implement SQL-compatible options FIRST,
+     LAST, ABSOLUTE n,
+     RELATIVE n for
+     FETCH and MOVE (Tom)
+    
+   
+
+   
+    Allow EXPLAIN on DECLARE CURSOR (Tom)
+   
+
+   
+    Allow CLUSTER to use index marked as pre-clustered by default (Alvaro Herrera)
+   
+
+   
+    Allow CLUSTER to cluster all tables (Alvaro Herrera)
+    
+     This allows all previously clustered tables in a database to be
+     reclustered with a single command.
+    
+   
+
+   Prevent CLUSTER on partial indexes (Tom)
+
+   Allow DOS and Mac line-endings in COPY files (Bruce)
+
+   
+    
+     Disallow literal carriage return as a data value,
+     backslash-carriage-return and \r are still allowed
+     (Bruce)
+    
+   
+
+   
+    COPY changes (binary, \.) (Tom)
+   
+
+   
+    Recover from COPY failure cleanly (Tom)
+   
+
+   
+    Prevent possible memory leaks in COPY (Tom)
+   
+
+   
+    Make TRUNCATE transaction-safe (Rod)
+    
+     TRUNCATE can now be used inside a
+     transaction. If the transaction aborts, the changes made by the
+     TRUNCATE are automatically rolled back.
+    
+   
+
+   
+    
+     Allow prepare/bind of utility commands like
+     FETCH and EXPLAIN (Tom)
+    
+   
+
+   
+    Add EXPLAIN EXECUTE (Neil)
+   
+
+   
+    Improve VACUUM performance on indexes by reducing WAL traffic (Tom)
+   
+
+   
+    Functional indexes have been generalized into indexes on expressions (Tom)
+    
+     In prior releases, functional indexes only supported a simple
+     function applied to one or more column names.  This release
+     allows any type of scalar expression.
+    
+   
+
+   
+    
+     Have SHOW TRANSACTION ISOLATION match input
+     to SET TRANSACTION ISOLATION
+     (Tom)
+    
+   
+
+   
+    
+      Have COMMENT ON DATABASE on nonlocal
+      database generate a warning, rather than an error (Rod)
+     
+
+    
+     Database comments are stored in database-local tables so
+     comments on a database have to be stored in each database.
+    
+   
+
+   
+    
+     Improve reliability of LISTEN/NOTIFY (Tom)
+    
+   
+
+   
+    Allow REINDEX to reliably reindex nonshared system catalog indexes (Tom)
+    
+     This allows system tables to be reindexed without the
+     requirement of a standalone session, which was necessary in
+     previous releases. The only tables that now require a standalone
+     session for reindexing are the global system tables
+     pg_database, pg_shadow, and
+     pg_group.
+    
+   
+  
+
+  Data Type and Function Changes
+
+  
+   
+    
+     New server parameter extra_float_digits to
+     control precision display of floating-point numbers (Pedro
+     Ferreira, Tom)
+    
+    
+     This controls output precision which was causing regression
+     testing problems.
+    
+   
+
+   Allow +1300 as a numeric time-zone specifier, for FJST (Tom)
+
+   
+    
+     Remove rarely used functions oidrand,
+     oidsrand, and userfntest functions
+     (Neil)
+    
+   
+
+   
+    Add md5() function to main server, already in contrib/pgcrypto (Joe)
+    
+     An MD5 function was frequently requested. For more complex
+     encryption capabilities, use
+     contrib/pgcrypto.
+    
+   
+
+   Increase date range of timestamp (John Cochran)
+
+   
+    
+     Change EXTRACT(EPOCH FROM timestamp) so
+     timestamp without time zone is assumed to be in
+     local time, not GMT (Tom)
+    
+   
+
+   Trap division by zero in case the operating system doesn't prevent it (Tom)
+   Change the numeric data type internally to base 10000 (Tom)
+   New hostmask() function (Greg Wickham)
+   Fixes for to_char() and to_timestamp() (Karel)
+
+   
+    
+     Allow functions that can take any argument data type and return
+     any data type, using anyelement and
+     anyarray (Joe)
+    
+    
+     This allows the creation of functions that can work with any
+     data type.
+    
+   
+
+   
+    
+     Arrays can now be specified as ARRAY[1,2,3],
+     ARRAY[['a','b'],['c','d']], or
+     ARRAY[ARRAY[ARRAY[2]]] (Joe)
+    
+   
+
+   
+    
+     Allow proper comparisons for arrays, including ORDER
+     BY and DISTINCT support
+     (Joe)
+    
+   
+
+   Allow indexes on array columns (Joe)
+   Allow array concatenation with || (Joe)
+
+   
+    
+     Allow WHERE qualification
+     expr op ANY/SOME/ALL
+     (array_expr) (Joe)
+    
+    
+     This allows arrays to behave like a list of values, for purposes
+     like SELECT * FROM tab WHERE col IN
+     (array_val).
+    
+   
+
+   
+    
+     New array functions array_append,
+     array_cat, array_lower,
+     array_prepend, array_to_string,
+     array_upper, string_to_array (Joe)
+    
+   
+
+   Allow user defined aggregates to use polymorphic functions (Joe)
+   Allow assignments to empty arrays (Joe)
+
+   
+    
+     Allow 60 in seconds fields of time,
+     timestamp, and interval input values
+     (Tom)
+    
+    
+     Sixty-second values are needed for leap seconds.
+    
+   
+
+   Allow cidr data type to be cast to text (Tom)
+
+   Disallow invalid time zone names in SET TIMEZONE
+
+   
+    
+     Trim trailing spaces when char is cast to
+     varchar or text (Tom)
+    
+   
+
+   
+    
+     Make float(p) measure the precision
+     p in binary digits, not decimal digits
+     (Tom)
+    
+   
+
+   
+    Add IPv6 support to the inet and cidr data types (Michael Graff)
+   
+
+   
+    Add family() function to report whether address is IPv4 or IPv6 (Michael Graff)
+   
+
+   
+    
+     Have SHOW datestyle generate output similar
+     to that used by SET datestyle (Tom)
+    
+   
+
+   
+    
+     Make EXTRACT(TIMEZONE) and SET/SHOW
+     TIME ZONE follow the SQL convention for the sign of
+     time zone offsets, i.e., positive is east from UTC (Tom)
+    
+   
+
+   
+    Fix date_trunc('quarter', ...) (Böjthe Zoltán)
+    
+     Prior releases returned an incorrect value for this function call.
+    
+   
+
+   
+    Make initcap() more compatible with Oracle (Mike Nolan)
+    
+     initcap() now uppercases a letter appearing
+     after any non-alphanumeric character, rather than only after
+     whitespace.
+    
+   
+
+   
+    Allow only datestyle field order for date values not in ISO-8601 format (Greg)
+   
+
+   
+    
+     Add new datestyle values MDY,
+     DMY, and YMD to set input field order;
+     honor US and European for backward
+     compatibility (Tom)
+    
+   
+
+   
+    
+     String literals like 'now' or
+     'today' will no longer work as a column
+     default. Use functions such as now(),
+     current_timestamp instead.  (change
+     required for prepared statements) (Tom)
+    
+   
+
+   
+    Treat NaN as larger than any other value in min()/max() (Tom)
+    
+     NaN was already sorted after ordinary numeric values for most
+     purposes, but min() and max() didn't
+     get this right.
+    
+   
+
+   
+    Prevent interval from suppressing :00
+    seconds display
+   
+
+   
+    
+     New functions pg_get_triggerdef(prettyprint)
+     and pg_conversion_is_visible() (Christopher)
+    
+   
+
+   
+    Allow time to be specified as 040506 or 0405 (Tom)
+   
+
+   
+    
+     Input date order must now be YYYY-MM-DD (with 4-digit year) or
+     match datestyle
+    
+   
+
+   
+    
+     Make pg_get_constraintdef support
+     unique, primary-key, and check constraints (Christopher)
+    
+   
+  
+
+  Server-Side Language Changes
+
+  
+   
+    
+     Prevent PL/pgSQL crash when RETURN NEXT is
+     used on a zero-row record variable (Tom)
+    
+   
+
+   
+    
+     Make PL/Python's spi_execute interface
+     handle null values properly (Andrew Bosma)
+    
+   
+
+   
+    Allow PL/pgSQL to declare variables of composite types without %ROWTYPE (Tom)
+   
+
+   
+    Fix PL/Python's _quote() function to handle big integers
+   
+
+   
+    Make PL/Python an untrusted language, now called plpythonu (Kevin Jacobs, Tom)
+    
+     The Python language no longer supports a restricted execution
+     environment, so the trusted version of PL/Python was removed. If
+     this situation changes, a version of PL/Python that can be used
+     by non-superusers will be readded.
+    
+   
+
+   
+    Allow polymorphic PL/pgSQL functions (Joe, Tom)
+   
+
+   
+    Allow polymorphic SQL functions (Joe)
+   
+
+   
+    
+     Improved compiled function caching mechanism in PL/pgSQL with
+     full support for polymorphism (Joe)
+    
+   
+
+   
+    
+     Add new parameter $0 in PL/pgSQL representing the
+     function's actual return type (Joe)
+    
+   
+
+   
+    
+     Allow PL/Tcl and PL/Python to use the same trigger on multiple tables (Tom)
+    
+   
+
+   
+    
+     Fixed PL/Tcl's spi_prepare to accept fully
+     qualified type names in the parameter type list
+     (Jan)
+    
+   
+  
+
+  psql Changes
+
+  
+   
+    Add \pset pager always to always use pager (Greg)
+    
+     This forces the pager to be used even if the number of rows is
+     less than the screen height.  This is valuable for rows that
+     wrap across several screen rows.
+    
+   
+
+   Improve tab completion (Rod, Ross Reedstrom, Ian Barwick)
+   Reorder \? help into groupings (Harald Armin Massa, Bruce)
+   Add backslash commands for listing schemas, casts, and conversions (Christopher)
+
+   
+    
+     \encoding now changes based on the server parameter
+     client_encoding (Tom)
+    
+    
+     In previous versions, \encoding was not aware
+     of encoding changes made using SET
+     client_encoding.
+    
+   
+
+   
+    Save editor buffer into readline history (Ross)
+    
+     When \e is used to edit a query, the result is saved
+     in the readline history for retrieval using the up arrow.
+    
+   
+
+   Improve \d display (Christopher)
+   Enhance HTML mode to be more standards-conforming (Greg)
+
+   
+    New \set AUTOCOMMIT off capability (Tom)
+    
+     This takes the place of the removed server parameter autocommit.
+    
+   
+
+   
+    New \set VERBOSITY to control error detail (Tom)
+    
+     This controls the new error reporting details.
+    
+   
+
+   New prompt escape sequence %x to show transaction status (Tom)
+   Long options for psql are now available on all platforms
+  
+
+  pg_dump Changes
+
+  
+   Multiple pg_dump fixes, including tar format and large objects
+   Allow pg_dump to dump specific schemas (Neil)
+
+   
+    Make pg_dump preserve column storage characteristics (Christopher)
+    
+     This preserves ALTER TABLE ... SET STORAGE information.
+    
+   
+
+   Make pg_dump preserve CLUSTER characteristics (Christopher)
+
+   
+    
+     Have pg_dumpall use GRANT/REVOKE to dump database-level privileges (Tom)
+    
+   
+
+   
+    
+     Allow pg_dumpall to support the options 
+     
+    
+   
+
+   Prevent pg_dump from lowercasing identifiers specified on the command line (Tom)
+
+   
+    
+     pg_dump options 
+     and  now do nothing, all dumps
+     use SET SESSION AUTHORIZATION
+    
+    
+     pg_dump no longer reconnects to switch users, but instead always
+     uses SET SESSION AUTHORIZATION. This will
+     reduce password prompting during restores.
+    
+   
+
+   
+    Long options for pg_dump are now available on all platforms
+    
+     PostgreSQL now includes its own
+     long-option processing routines.
+    
+   
+  
+
+  libpq Changes
+
+  
+   
+    
+     Add function PQfreemem for freeing memory on
+     Windows, suggested for NOTIFY (Bruce)
+    
+    
+     Windows requires that memory allocated in a library be freed by
+     a function in the same library, hence
+     free() doesn't work for freeing memory
+     allocated by libpq. PQfreemem is the proper
+     way to free libpq memory, especially on Windows, and is
+     recommended for other platforms as well.
+    
+   
+
+   
+    Document service capability, and add sample file (Bruce)
+    
+     This allows clients to look up connection information in a
+     central file on the client machine.
+    
+   
+
+   
+    
+     Make PQsetdbLogin have the same defaults as
+     PQconnectdb (Tom)
+    
+   
+
+   Allow libpq to cleanly fail when result sets are too large (Tom)
+
+   
+    
+     Improve performance of function PQunescapeBytea (Ben Lamb)
+    
+   
+
+   
+    
+     Allow thread-safe libpq with configure
+     option  (Lee Kindness,
+     Philip Yarra)
+    
+   
+
+   
+    
+     Allow function pqInternalNotice to accept a
+     format string and arguments instead of just a preformatted
+     message (Tom, Sean Chittenden)
+    
+   
+
+   
+    
+     Control SSL negotiation with sslmode values
+     disableallow,
+     prefer, and require (Jon
+     Jensen)
+    
+   
+
+   
+    Allow new error codes and levels of text (Tom)
+   
+
+   
+    Allow access to the underlying table and column of a query result (Tom)
+    
+     This is helpful for query-builder applications that want to know
+     the underlying table and column names associated with a specific
+     result set.
+    
+   
+
+   Allow access to the current transaction status (Tom)
+   Add ability to pass binary data directly to the server (Tom)
+
+   
+    
+     Add function PQexecPrepared and
+     PQsendQueryPrepared functions which perform
+     bind/execute of previously prepared statements (Tom)
+     
+    
+  
+
+  JDBC Changes
+
+  
+   Allow setNull on updateable result sets
+   Allow executeBatch on a prepared statement (Barry)
+   Support SSL connections (Barry)
+   Handle schema names in result sets (Paul Sorenson)
+   Add refcursor support (Nic Ferrier)
+  
+
+  Miscellaneous Interface Changes
+
+  
+   
+    Prevent possible memory leak or core dump during libpgtcl shutdown (Tom)
+   
+   
+    Add Informix compatibility to ECPG (Michael)
+    
+     This allows ECPG to process embedded C programs that were
+     written using certain Informix extensions.
+    
+   
+
+   
+    Add type decimal to ECPG that is fixed length, for Informix (Michael)
+   
+
+   
+    
+     Allow thread-safe embedded SQL programs with
+     configure option
+      (Lee Kindness, Bruce)
+    
+    
+     This allows multiple threads to access the database at the same
+     time.
+    
+   
+
+   
+    Moved Python client PyGreSQL to  (Marc)
+   
+  
+
+  Source Code Changes
+
+  
+   Prevent need for separate platform geometry regression result files (Tom)
+   Improved PPC locking primitive (Reinhard Max)
+   New function palloc0 to allocate and clear memory (Bruce)
+   Fix locking code for s390x CPU (64-bit) (Tom)
+   Allow OpenBSD to use local ident credentials (William Ahern)
+   Make query plan trees read-only to executor (Tom)
+   Add Darwin startup scripts (David Wheeler)
+   Allow libpq to compile with Borland C++ compiler (Lester Godwin, Karl Waclawek)
+   Use our own version of getopt_long() if needed (Peter)
+   Convert administration scripts to C (Peter)
+    Bison >= 1.85 is now required to build the PostgreSQL grammar, if building from CVS
+   Merge documentation into one book (Peter)
+   Add Windows compatibility functions (Bruce)
+   Allow client interfaces to compile under MinGW (Bruce)
+   New ereport() function for error reporting (Tom)
+   Support Intel compiler on Linux (Peter)
+   Improve Linux startup scripts (Slawomir Sudnik, Darko Prenosil)
+   Add support for AMD Opteron and Itanium (Jeffrey W. Baker, Bruce)
+   
+    Remove  option from configure
+    
+     This was no longer needed now that we have CREATE CONVERSION.
+    
+   
+   
+    Generate a compile error if spinlock code is not found (Bruce)
+    
+     Platforms without spinlock code will now fail to compile, rather
+     than silently using semaphores. This failure can be disabled
+     with a new configure option.
+    
+   
+  
+
+  Contrib Changes
+
+  
+   Change dbmirror license to BSD
+   Improve earthdistance (Bruno Wolff III)
+   Portability improvements to pgcrypto (Marko Kreen)
+   Prevent crash in xml (John Gray, Michael Richards)
+   Update oracle
+   Update mysql
+   Update cube (Bruno Wolff III)
+   Update earthdistance to use cube (Bruno Wolff III)
+   Update btree_gist (Oleg)
+   New tsearch2 full-text search module (Oleg, Teodor)
+   Add hash-based crosstab function to tablefuncs (Joe)
+   Add serial column to order connectby() siblings in tablefuncs (Nabil Sayegh,Joe)
+   Add named persistent connections to dblink (Shridhar Daithanka)
+   New pg_autovacuum allows automatic VACUUM (Matthew T. O'Connor)
+   Make pgbench honor environment variables PGHOST, PGPORT, PGUSER (Tatsuo)
+   Improve intarray (Teodor Sigaev)
+   Improve pgstattuple (Rod)
+   Fix bug in metaphone() in fuzzystrmatch
+   Improve adddepend (Rod)
+   Update spi/timetravel (Böjthe Zoltán)
+   Fix dbase 
+   Remove array module because features now included by default (Joe)
+  
+
diff --git a/doc/src/sgml/release-8.0.sgml b/doc/src/sgml/release-8.0.sgml
new file mode 100644 (file)
index 0000000..eca4ebd
--- /dev/null
@@ -0,0 +1,4561 @@
+
+
+
+  Release 8.0.21
+
+  
+  Release date
+  2009-03-16
+  
+
+  
+   This release contains a variety of fixes from 8.0.20.
+   For information about new features in the 8.0 major release, see
+   .
+  
+
+  
+   Migration to Version 8.0.21
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Prevent error recursion crashes when encoding conversion fails (Tom)
+     
+
+     
+      This change extends fixes made in the last two minor releases for
+      related failure scenarios.  The previous fixes were narrowly tailored
+      for the original problem reports, but we have now recognized that
+      any error thrown by an encoding conversion function could
+      potentially lead to infinite recursion while trying to report the
+      error.  The solution therefore is to disable translation and encoding
+      conversion and report the plain-ASCII form of any error message,
+      if we find we have gotten into a recursive error reporting situation.
+      (CVE-2009-0922)
+     
+    
+
+    
+     
+      Disallow CREATE CONVERSION with the wrong encodings
+      for the specified conversion function (Heikki)
+     
+
+     
+      This prevents one possible scenario for encoding conversion failure.
+      The previous change is a backstop to guard against other kinds of
+      failures in the same area.
+     
+    
+
+    
+     
+      Fix core dump when to_char() is given format codes that
+      are inappropriate for the type of the data argument (Tom)
+     
+    
+
+    
+     
+      Add MUST (Mauritius Island Summer Time) to the default list
+      of known timezone abbreviations (Xavier Bugaud)
+     
+    
+
+   
+
+  
+
+  Release 8.0.20
+
+  
+  Release date
+  2009-02-02
+  
+
+  
+   This release contains a variety of fixes from 8.0.19.
+   For information about new features in the 8.0 major release, see
+   .
+  
+
+  
+   Migration to Version 8.0.20
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Improve handling of URLs in headline() function (Teodor)
+     
+    
+
+    
+     
+      Improve handling of overlength headlines in headline()
+      function (Teodor)
+     
+    
+
+    
+     
+      Prevent possible Assert failure or misconversion if an encoding
+      conversion is created with the wrong conversion function for the
+      specified pair of encodings (Tom, Heikki)
+     
+    
+
+    
+     
+      Avoid unnecessary locking of small tables in VACUUM
+      (Heikki)
+     
+    
+
+    
+     
+      Fix uninitialized variables in contrib/tsearch2's
+      get_covers() function (Teodor)
+     
+    
+
+    
+     
+      Make all documentation reference pgsql-bugs and/or
+      pgsql-hackers as appropriate, instead of the
+      now-decommissioned pgsql-ports and pgsql-patches
+      mailing lists (Tom)
+     
+    
+
+    
+     
+      Update time zone data files to tzdata release 2009a (for
+      Kathmandu and historical DST corrections in Switzerland, Cuba)
+     
+    
+
+   
+
+  
+
+  Release 8.0.19
+
+  
+  Release date
+  2008-11-03
+  
+
+  
+   This release contains a variety of fixes from 8.0.18.
+   For information about new features in the 8.0 major release, see
+   .
+  
+
+  
+   Migration to Version 8.0.19
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Fix backend crash when the client encoding cannot represent a localized
+      error message (Tom)
+     
+
+     
+      We have addressed similar issues before, but it would still fail if
+      the character has no equivalent message itself couldn't
+      be converted.  The fix is to disable localization and send the plain
+      ASCII error message when we detect such a situation.
+     
+    
+
+    
+     
+      Fix possible crash when deeply nested functions are invoked from
+      a trigger (Tom)
+     
+    
+
+    
+     
+      Ensure an error is reported when a newly-defined PL/pgSQL trigger
+      function is invoked as a normal function (Tom)
+     
+    
+
+    
+     
+      Fix incorrect tsearch2 headline generation when single query
+      item matches first word of text (Sushant Sinha)
+     
+    
+
+    
+     
+      Fix improper display of fractional seconds in interval values when
+      using a non-ISO datestyle in an 
+      build (Ron Mayer)
+     
+    
+
+    
+     
+      Ensure SPI_getvalue and SPI_getbinval
+      behave correctly when the passed tuple and tuple descriptor have
+      different numbers of columns (Tom)
+     
+
+     
+      This situation is normal when a table has had columns added or removed,
+      but these two functions didn't handle it properly.
+      The only likely consequence is an incorrect error indication.
+     
+    
+
+    
+     
+      Fix ecpg's parsing of CREATE USER (Michael)
+     
+    
+
+    
+     
+      Fix recent breakage of pg_ctl restart (Tom)
+     
+    
+
+    
+     
+      Update time zone data files to tzdata release 2008i (for
+      DST law changes in Argentina, Brazil, Mauritius, Syria)
+     
+    
+
+   
+
+  
+
+  Release 8.0.18
+
+  
+  Release date
+  2008-09-22
+  
+
+  
+   This release contains a variety of fixes from 8.0.17.
+   For information about new features in the 8.0 major release, see
+   .
+  
+
+  
+   Migration to Version 8.0.18
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Widen local lock counters from 32 to 64 bits (Tom)
+     
+
+     
+      This responds to reports that the counters could overflow in
+      sufficiently long transactions, leading to unexpected lock is
+      already held errors.
+     
+    
+
+    
+     
+      Add checks in executor startup to ensure that the tuples produced by an
+      INSERT or UPDATE will match the target table's
+      current rowtype (Tom)
+     
+
+     
+      ALTER COLUMN TYPE, followed by re-use of a previously
+      cached plan, could produce this type of situation.  The check protects
+      against data corruption and/or crashes that could ensue.
+     
+    
+
+    
+     
+      Fix datetime input functions to correctly detect integer overflow when
+      running on a 64-bit platform (Tom)
+     
+    
+
+    
+     
+      Improve performance of writing very long log messages to syslog (Tom)
+     
+    
+
+    
+     
+      Fix bug in backwards scanning of a cursor on a SELECT DISTINCT
+      ON query (Tom)
+     
+    
+
+    
+     
+      Fix planner to estimate that GROUP BY expressions yielding
+      boolean results always result in two groups, regardless of the
+      expressions' contents (Tom)
+     
+
+     
+      This is very substantially more accurate than the regular GROUP
+      BY estimate for certain boolean tests like col
+      IS NULL.
+     
+    
+
+    
+     
+      Fix PL/Tcl to behave correctly with Tcl 8.5, and to be more careful
+      about the encoding of data sent to or from Tcl (Tom)
+     
+    
+
+    
+     
+      Fix PL/Python to work with Python 2.5
+     
+
+     
+      This is a back-port of fixes made during the 8.2 development cycle.
+     
+    
+
+    
+     
+      Improve pg_dump and pg_restore's
+      error reporting after failure to send a SQL command (Tom)
+     
+    
+
+    
+     
+      Fix pg_ctl to properly preserve postmaster
+      command-line arguments across a restart (Bruce)
+     
+    
+
+    
+     
+      Update time zone data files to tzdata release 2008f (for
+      DST law changes in Argentina, Bahamas, Brazil, Mauritius, Morocco,
+      Pakistan, Palestine, and Paraguay)
+     
+    
+
+   
+
+  
+
+  Release 8.0.17
+
+  
+  Release date
+  2008-06-12
+  
+
+  
+   This release contains one serious bug fix over 8.0.16.
+   For information about new features in the 8.0 major release, see
+   .
+  
+
+  
+   Migration to Version 8.0.17
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Make pg_get_ruledef() parenthesize negative constants (Tom)
+     
+
+     
+      Before this fix, a negative constant in a view or rule might be dumped
+      as, say, -42::integer, which is subtly incorrect: it should
+      be (-42)::integer due to operator precedence rules.
+      Usually this would make little difference, but it could interact with
+      another recent patch to cause
+      PostgreSQL to reject what had been a valid
+      SELECT DISTINCT view query.  Since this could result in
+      pg_dump output failing to reload, it is being treated
+      as a high-priority fix.  The only released versions in which dump
+      output is actually incorrect are 8.3.1 and 8.2.7.
+     
+    
+
+   
+
+  
+
+  Release 8.0.16
+
+  
+  Release date
+  never released
+  
+
+  
+   This release contains a variety of fixes from 8.0.15.
+   For information about new features in the 8.0 major release, see
+   .
+  
+
+  
+   Migration to Version 8.0.16
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Fix 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)
+     
+
+     
+      Previous versions neglected to check this requirement at all.
+     
+    
+
+    
+     
+      Fix possible CREATE TABLE failure when inheriting the
+      same constraint from multiple parent relations that
+      inherited that constraint from a common ancestor (Tom)
+     
+    
+
+    
+     
+      Fix conversions between ISO-8859-5 and other encodings to handle
+      Cyrillic Yo characters (e and E with
+      two dots) (Sergey Burladyan)
+     
+    
+
+    
+     
+      Fix a few datatype input functions
+      that were allowing unused bytes in their results to contain
+      uninitialized, unpredictable values (Tom)
+     
+
+     
+      This could lead to failures in which two apparently identical literal
+      values were not seen as equal, resulting in the parser complaining
+      about unmatched ORDER BY and DISTINCT
+      expressions.
+     
+    
+
+    
+     
+      Fix a corner case in regular-expression substring matching
+      (substring(string from
+      pattern)) (Tom)
+     
+
+     
+      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
+      substring('foo' from 'foo(bar)?').
+      This should return NULL, since (bar) isn't matched, but
+      it was mistakenly returning the whole-pattern match instead (ie,
+      foo).
+     
+    
+
+    
+     
+      Update time zone data files to tzdata release 2008c (for
+      DST law changes in Morocco, Iraq, Choibalsan, Pakistan, Syria, Cuba,
+      Argentina/San_Luis, and Chile)
+     
+    
+
+    
+     
+      Fix incorrect result from ecpg's
+      PGTYPEStimestamp_sub() function (Michael)
+     
+    
+
+    
+     
+      Fix core dump in contrib/xml2's
+      xpath_table() function when the input query returns a
+      NULL value (Tom)
+     
+    
+
+    
+     
+      Fix contrib/xml2's makefile to not override
+      CFLAGS (Tom)
+     
+    
+
+    
+     
+      Fix DatumGetBool macro to not fail with gcc
+      4.3 (Tom)
+     
+
+     
+      This problem affects 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.
+     
+    
+
+    
+     
+      Fix longstanding LISTEN/NOTIFY
+      race condition (Tom)
+     
+
+     
+      In rare cases a session that had just executed a
+      LISTEN might not get a notification, even though
+      one would be expected because the concurrent transaction executing
+      NOTIFY was observed to commit later.
+     
+
+     
+      A side effect of the fix is that a transaction that has executed
+      a not-yet-committed LISTEN command will not see any
+      row in pg_listener for the 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.
+     
+    
+
+    
+     
+      Fix rare crash when an error occurs during a query using a hash index
+      (Heikki)
+     
+    
+
+    
+     
+      Fix input of datetime values for February 29 in years BC (Tom)
+     
+
+     
+      The former coding was mistaken about which years were leap years.
+     
+    
+
+    
+     
+      Fix unrecognized node type error in some variants of
+      ALTER OWNER (Tom)
+     
+    
+
+    
+     
+      Fix pg_ctl to correctly extract the postmaster's port
+      number from command-line options (Itagaki Takahiro, Tom)
+     
+
+     
+      Previously, pg_ctl start -w could try to contact the
+      postmaster on the wrong port, leading to bogus reports of startup
+      failure.
+     
+    
+
+    
+     
+      Use 
+      in recent gcc versions (Tom)
+     
+
+     
+      This is known to be necessary when building PostgreSQL
+      with gcc 4.3 or later.
+     
+    
+
+    
+     
+      Fix display of constant expressions in ORDER BY
+      and GROUP BY (Tom)
+     
+
+     
+      An explictly casted constant would be shown incorrectly.  This could
+      for example lead to corruption of a view definition during
+      dump and reload.
+     
+    
+
+    
+     
+      Fix libpq to handle NOTICE messages correctly
+      during COPY OUT (Tom)
+     
+
+     
+      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.
+     
+    
+
+   
+
+  
+
+  Release 8.0.15
+
+  
+  Release date
+  2008-01-07
+  
+
+  
+   This release contains a variety of fixes from 8.0.14,
+   including fixes for significant security issues.
+   For information about new features in the 8.0 major release, see
+   .
+  
+
+  
+   This is the last 8.0.X release for which the PostgreSQL
+   community will produce binary packages for Windows.
+   Windows users are encouraged to move to 8.2.X or later,
+   since there are Windows-specific fixes in 8.2.X that
+   are impractical to back-port.  8.0.X will continue to
+   be supported on other platforms.
+  
+
+  
+   Migration to Version 8.0.15
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Prevent functions in indexes from executing with the privileges of
+      the user running VACUUM, ANALYZE, etc (Tom)
+     
+
+     
+      Functions used in index expressions and partial-index
+      predicates are evaluated whenever a new table entry is made.  It has
+      long been understood that this poses a risk of trojan-horse code
+      execution if one modifies a table owned by an untrustworthy user.
+      (Note that triggers, defaults, check constraints, etc. pose the
+      same type of risk.)  But functions in indexes pose extra danger
+      because they will be executed by routine maintenance operations
+      such as VACUUM FULL, which are commonly performed
+      automatically under a superuser account.  For example, a nefarious user
+      can execute code with superuser privileges by setting up a
+      trojan-horse index definition and waiting for the next routine vacuum.
+      The fix arranges for standard maintenance operations
+      (including VACUUM, ANALYZE, REINDEX,
+      and CLUSTER) to execute as the table owner rather than
+      the calling user, using the same privilege-switching mechanism already
+      used for SECURITY DEFINER functions.  To prevent bypassing
+      this security measure, execution of SET SESSION
+      AUTHORIZATION and SET ROLE is now forbidden within a
+      SECURITY DEFINER context.  (CVE-2007-6600)
+     
+    
+
+    
+     
+      Repair assorted bugs in the regular-expression package (Tom, Will Drewry)
+     
+
+     
+      Suitably crafted regular-expression patterns could cause crashes,
+      infinite or near-infinite looping, and/or massive memory consumption,
+      all of which pose denial-of-service hazards for applications that
+      accept regex search patterns from untrustworthy sources.
+      (CVE-2007-4769, CVE-2007-4772, CVE-2007-6067)
+     
+    
+
+    
+     
+      Require non-superusers who use /contrib/dblink to use only
+      password authentication, as a security measure (Joe)
+     
+
+     
+      The fix that appeared for this in 8.0.14 was incomplete, as it plugged
+      the hole for only some dblink functions.  (CVE-2007-6601,
+      CVE-2007-3278)
+     
+    
+
+    
+     
+      Update time zone data files to tzdata release 2007k
+      (in particular, recent Argentina changes) (Tom)
+     
+    
+
+    
+     
+      Fix planner failure in some cases of WHERE false AND var IN
+      (SELECT ...) (Tom)
+     
+    
+
+    
+     
+      Preserve the tablespace of indexes that are
+      rebuilt by ALTER TABLE ... ALTER COLUMN TYPE (Tom)
+     
+    
+
+    
+     
+      Make archive recovery always start a new WAL timeline, rather than only
+      when a recovery stop time was used (Simon)
+     
+
+     
+      This avoids a corner-case risk of trying to overwrite an existing
+      archived copy of the last WAL segment, and seems simpler and cleaner
+      than the original definition.
+     
+    
+
+    
+     
+      Make VACUUM not use all of maintenance_work_mem
+      when the table is too small for it to be useful (Alvaro)
+     
+    
+
+    
+     
+      Fix potential crash in translate() when using a multibyte
+      database encoding (Tom)
+     
+    
+
+    
+     
+      Fix PL/Perl to cope when platform's Perl defines type bool
+      as int rather than char (Tom)
+     
+
+     
+      While this could theoretically happen anywhere, no standard build of
+      Perl did things this way ... until Mac OS X 10.5.
+     
+    
+
+    
+     
+      Fix PL/Python to not crash on long exception messages (Alvaro)
+     
+    
+
+    
+     
+      Fix pg_dump to correctly handle inheritance child tables
+      that have default expressions different from their parent's (Tom)
+     
+    
+
+    
+     
+      ecpg parser fixes (Michael)
+     
+    
+
+    
+     
+      Make contrib/tablefunc's crosstab() handle
+      NULL rowid as a category in its own right, rather than crashing (Joe)
+     
+    
+
+    
+     
+      Fix tsvector and tsquery output routines to
+      escape backslashes correctly (Teodor, Bruce)
+     
+    
+
+    
+     
+      Fix crash of to_tsvector() on huge input strings (Teodor)
+     
+    
+
+    
+     
+      Require a specific version of Autoconf to be used
+      when re-generating the configure script (Peter)
+     
+
+     
+      This affects developers and packagers only.  The change was made
+      to prevent accidental use of untested combinations of
+      Autoconf and PostgreSQL versions.
+      You can remove the version check if you really want to use a
+      different Autoconf version, but it's
+      your responsibility whether the result works or not.
+     
+    
+
+   
+
+  
+
+  Release 8.0.14
+
+  
+  Release date
+  2007-09-17
+  
+
+  
+   This release contains a variety of fixes from 8.0.13.
+   For information about new features in the 8.0 major release, see
+   .
+  
+
+  
+   Migration to Version 8.0.14
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Prevent index corruption when a transaction inserts rows and
+      then aborts close to the end of a concurrent VACUUM
+      on the same table (Tom)
+     
+    
+
+    
+     
+      Make CREATE DOMAIN ... DEFAULT NULL work properly (Tom)
+     
+    
+
+    
+     
+      Fix excessive logging of SSL error messages (Tom)
+     
+    
+
+    
+     
+      Fix logging so that log messages are never interleaved when using
+      the syslogger process (Andrew)
+     
+    
+
+    
+     
+      Fix crash when log_min_error_statement logging runs out
+      of memory (Tom)
+     
+    
+
+    
+     
+      Fix incorrect handling of some foreign-key corner cases (Tom)
+     
+    
+
+    
+     
+      Prevent CLUSTER from failing
+      due to attempting to process temporary tables of other sessions (Alvaro)
+     
+    
+
+    
+     
+      Update the time zone database rules, particularly New Zealand's upcoming changes (Tom)
+     
+    
+
+    
+     
+      Windows socket improvements (Magnus)
+     
+    
+
+    
+     
+      Suppress timezone name (%Z) in log timestamps on Windows
+      because of possible encoding mismatches (Tom)
+     
+    
+
+    
+     
+      Require non-superusers who use /contrib/dblink to use only
+      password authentication, as a security measure (Joe)
+     
+    
+
+   
+
+  
+
+  Release 8.0.13
+
+  
+  Release date
+  2007-04-23
+  
+
+  
+   This release contains a variety of fixes from 8.0.12,
+   including a security fix.
+   For information about new features in the 8.0 major release, see
+   .
+  
+
+  
+   Migration to Version 8.0.13
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+    
+     Support explicit placement of the temporary-table schema within
+     search_path, and disable searching it for functions
+     and operators (Tom)
+    
+    
+     This is needed to allow a security-definer function to set a
+     truly secure value of search_path.  Without it,
+     an unprivileged SQL user can use temporary objects to execute code
+     with the privileges of the security-definer function (CVE-2007-2138).
+     See CREATE FUNCTION for more information.
+    
+    
+
+    
+    
+     /contrib/tsearch2 crash fixes (Teodor)
+    
+    
+
+    
+    
+     Fix potential-data-corruption bug in how VACUUM FULL handles
+     UPDATE chains (Tom, Pavan Deolasee)
+    
+    
+
+    
+    
+     Fix PANIC during enlargement of a hash index (bug introduced in 8.0.10)
+     (Tom)
+    
+    
+
+    
+    
+     Fix POSIX-style timezone specs to follow new USA DST rules (Tom)
+    
+    
+
+   
+
+  
+
+  Release 8.0.12
+
+  
+  Release date
+  2007-02-07
+  
+
+  
+   This release contains one fix from 8.0.11.
+   For information about new features in the 8.0 major release, see
+   .
+  
+
+  
+   Migration to Version 8.0.12
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+    
+     Remove overly-restrictive check for type length in constraints and
+     functional indexes(Tom)
+    
+    
+
+   
+
+  
+
+  Release 8.0.11
+
+  
+  Release date
+  2007-02-05
+  
+
+  
+   This release contains a variety of fixes from 8.0.10, including
+   a security fix.
+   For information about new features in the 8.0 major release, see
+   .
+  
+
+  
+   Migration to Version 8.0.11
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+    
+     Remove security vulnerabilities that allowed connected users
+     to read backend memory (Tom)
+    
+    
+     The vulnerabilities involve suppressing the normal check that a SQL
+     function returns the data type it's declared to, and changing the
+     data type of a table column (CVE-2007-0555, CVE-2007-0556).  These
+     errors 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.
+    
+    
+
+    
+    
+     Fix rare bug wherein btree index page splits could fail
+     due to choosing an infeasible split point (Heikki Linnakangas)
+    
+    
+
+    
+    
+     Fix for rare Assert() crash triggered by UNION (Tom)
+    
+    
+
+    
+    
+     Tighten security of multi-byte character processing for UTF8 sequences
+     over three bytes long (Tom)
+    
+    
+
+   
+
+  
+
+  Release 8.0.10
+
+  
+  Release date
+  2007-01-08
+  
+
+  
+   This release contains a variety of fixes from 8.0.9.
+   For information about new features in the 8.0 major release, see
+   .
+  
+
+  
+   Migration to Version 8.0.10
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Improve handling of getaddrinfo() on AIX (Tom)
+     
+
+     
+      This fixes a problem with starting the statistics collector,
+      among other things.
+     
+    
+
+     
+      
+       Fix failed to re-find parent key errors in
+       VACUUM (Tom)
+      
+     
+
+     
+      
+       Fix race condition for truncation of a large relation across a
+       gigabyte boundary by VACUUM (Tom)
+      
+     
+
+     
+      
+       Fix bugs affecting multi-gigabyte hash indexes (Tom)
+      
+     
+
+    
+     
+      Fix possible deadlock in Windows signal handling (Teodor)
+     
+    
+
+    
+     
+      Fix error when constructing an ARRAY[] made up of multiple
+      empty elements (Tom)
+     
+    
+
+    
+     
+      Fix ecpg memory leak during connection (Michael)
+     
+    
+
+    
+     
+      to_number() and to_char(numeric)
+      are now STABLE, not IMMUTABLE, for
+      new initdb installs (Tom)
+     
+
+     
+      This is because lc_numeric can potentially
+      change the output of these functions.
+     
+    
+
+    
+     
+      Improve index usage of regular expressions that use parentheses (Tom)
+     
+
+     
+      This improves psql \d performance also.
+     
+    
+
+    
+     
+      Update timezone database
+     
+
+     
+      This affects Australian and Canadian daylight-savings rules in
+      particular.
+     
+    
+
+   
+
+  
+
+  Release 8.0.9
+
+  
+  Release date
+  2006-10-16
+  
+
+  
+   This release contains a variety of fixes from 8.0.8.
+   For information about new features in the 8.0 major release, see
+   .
+  
+
+  
+   Migration to Version 8.0.9
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+
+Fix crash when referencing NEW row
+values in rule WHERE expressions (Tom)
+Fix core dump when an untyped literal is taken as
+ANYARRAY
+Fix mishandling of AFTER triggers when query contains a SQL
+function returning multiple rows (Tom)
+Fix ALTER TABLE ... TYPE to recheck
+NOT NULL for USING clause (Tom)
+Fix string_to_array() to handle overlapping
+ matches for the separator string
+For example, string_to_array('123xx456xxx789', 'xx').
+
+Fix corner cases in pattern matching for
psql's \d commands
+Fix index-corrupting bugs in /contrib/ltree
+ (Teodor)
+Numerous robustness fixes in ecpg (Joachim
+Wieland)
+Fix backslash escaping in /contrib/dbmirror
+Fix instability of statistics collection on Win32 (Tom, Andrew)
+Fixes for AIX and
+Intel compilers (Tom)
+
+
+  
+
+  Release 8.0.8
+
+  
+  Release date
+  2006-05-23
+  
+
+  
+   This release contains a variety of fixes from 8.0.7,
+   including patches for extremely serious security issues.
+   For information about new features in the 8.0 major release, see
+   .
+  
+
+  
+   Migration to Version 8.0.8
+
+   
+    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.
+   
+
+   
+    Full security against the SQL-injection attacks described in
+    CVE-2006-2313 and CVE-2006-2314 might require changes in application
+    code.  If you have applications that embed untrustworthy strings
+    into SQL commands, you should examine them as soon as possible to
+    ensure that they are using recommended escaping techniques.  In
+    most cases, applications should be using subroutines provided by
+    libraries or drivers (such as libpq's
+    PQescapeStringConn()) to perform string escaping,
+    rather than relying on ad hoc code to do it.
+   
+  
+
+  
+   Changes
+
+
+Change the server to reject invalidly-encoded multibyte
+characters in all cases (Tatsuo, Tom)
+While PostgreSQL has been moving in this direction for
+some time, the checks are now applied uniformly to all encodings and all
+textual input, and are now always errors not merely warnings.  This change
+defends against SQL-injection attacks of the type described in CVE-2006-2313.
+
+
+Reject unsafe uses of \' in string literals
+As a server-side defense against SQL-injection attacks of the type
+described in CVE-2006-2314, the server now only accepts '' and not
+\' as a representation of ASCII single quote in SQL string
+literals.  By default, \' is rejected only when
+client_encoding is set to a client-only encoding (SJIS, BIG5, GBK,
+GB18030, or UHC), which is the scenario in which SQL injection is possible.
+A new configuration parameter backslash_quote is available to
+adjust this behavior when needed.  Note that full security against
+CVE-2006-2314 might require client-side changes; the purpose of
+backslash_quote is in part to make it obvious that insecure
+clients are insecure.
+
+
+Modify libpq's string-escaping routines to be
+aware of encoding considerations and
+standard_conforming_strings
+This fixes libpq-using applications for the security
+issues described in CVE-2006-2313 and CVE-2006-2314, and also future-proofs
+them against the planned changeover to SQL-standard string literal syntax.
+Applications that use multiple PostgreSQL connections
+concurrently should migrate to PQescapeStringConn() and
+PQescapeByteaConn() to ensure that escaping is done correctly
+for the settings in use in each database connection.  Applications that
+do string escaping by hand should be modified to rely on library
+routines instead.
+
+
+Fix some incorrect encoding conversion functions
+win1251_to_iso, alt_to_iso,
+euc_tw_to_big5, euc_tw_to_mic,
+mic_to_euc_tw were all broken to varying
+extents.
+
+
+Clean up stray remaining uses of \' in strings
+(Bruce, Jan)
+
+Fix bug that sometimes caused OR'd index scans to
+miss rows they should have returned
+
+Fix WAL replay for case where a btree index has been
+truncated
+
+Fix SIMILAR TO for patterns involving
+| (Tom)
+
+Fix SELECT INTO and CREATE TABLE AS to
+create tables in the default tablespace, not the base directory (Kris
+Jurka)
+
+Fix server to use custom DH SSL parameters correctly (Michael
+Fuhr)
+
+Fix for Bonjour on Intel Macs (Ashley Clark)
+
+Fix various minor memory leaks
+
+Fix problem with password prompting on some Win32 systems
+(Robert Kinberg)
+
+
+  
+
+  Release 8.0.7
+
+  
+  Release date
+  2006-02-14
+  
+
+  
+   This release contains a variety of fixes from 8.0.6.
+   For information about new features in the 8.0 major release, see
+   .
+  
+
+  
+   Migration to Version 8.0.7
+
+   
+    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.
+   
+  
+
+  
+   Changes
+
+
+
+Fix potential crash in SET
+SESSION AUTHORIZATION (CVE-2006-0553)
+An unprivileged user could crash the server process, resulting in
+momentary denial of service to other users, if the server has been compiled
+with Asserts enabled (which is not the default).
+Thanks to Akio Ishida for reporting this problem.
+
+
+Fix bug with row visibility logic in self-inserted
+rows (Tom)
+Under rare circumstances a row inserted by the current command
+could be seen as already valid, when it should not be.  Repairs bug
+created in 8.0.4, 7.4.9, and 7.3.11 releases.
+
+
+Fix race condition that could lead to file already
+exists errors during pg_clog and pg_subtrans file creation
+(Tom)
+
+Fix cases that could lead to crashes if a cache-invalidation
+message arrives at just the wrong time (Tom)
+
+Properly check DOMAIN constraints for
+UNKNOWN parameters in prepared statements
+(Neil)
+
+Ensure ALTER COLUMN TYPE will process
+FOREIGN KEY, UNIQUE, and PRIMARY KEY
+constraints in the proper order (Nakano Yoshihisa)
+
+Fixes to allow restoring dumps that have cross-schema
+references to custom operators or operator classes (Tom)
+
+Allow pg_restore to continue properly after a
+COPY failure; formerly it tried to treat the remaining
+COPY data as SQL commands (Stephen Frost)
+
+Fix pg_ctl unregister crash
+when the  data directory is not specified (Magnus)
+
+Fix ecpg crash on AMD64 and PPC
+(Neil)
+
+Recover properly if error occurs during argument passing
+in PL/python (Neil)
+
+Fix PL/perl's handling of locales on
+Win32 to match the backend (Andrew)
+
+Fix crash when log_min_messages is set to
+DEBUG3 or above in postgresql.conf on Win32
+(Bruce)
+
+Fix pgxs -L library path
+specification for Win32, Cygwin, OS X, AIX (Bruce)
+
+Check that SID is enabled while checking for Win32 admin
+privileges (Magnus)
+
+Properly reject out-of-range date inputs (Kris
+Jurka)
+
+Portability fix for testing presence of finite
+and isinf during configure (Tom)
+
+
+
+  
+
+  Release 8.0.6
+
+  
+  Release date
+  2006-01-09
+  
+
+  
+   This release contains a variety of fixes from 8.0.5.
+   For information about new features in the 8.0 major release, see
+   .
+  
+
+  
+   Migration to Version 8.0.6
+
+   
+    A dump/restore is not required for those running 8.0.X.  However,
+    if you are upgrading from a version earlier than 8.0.3, see the release
+    notes for 8.0.3.
+    Also, you might need to REINDEX indexes on textual
+    columns after updating, if you are affected by the locale or
+    plperl issues described below.
+   
+  
+
+  
+   Changes
+
+
+
+Fix Windows code so that postmaster will continue rather
+than exit if there is no more room in ShmemBackendArray (Magnus)
+The previous behavior could lead to a denial-of-service situation if too
+many connection requests arrive close together.  This applies
+only to the Windows port.
+
+Fix bug introduced in 8.0 that could allow ReadBuffer
+to return an already-used page as new, potentially causing loss of
+recently-committed data (Tom)
+
+Fix for protocol-level Describe messages issued
+outside a transaction or in a failed transaction (Tom)
+
+Fix character string comparison for locales that consider
+different character combinations as equal, such as Hungarian (Tom)
+This might require REINDEX to fix existing indexes on
+textual columns.
+
+Set locale environment variables during postmaster startup
+to ensure that plperl won't change the locale later
+This fixes a problem that occurred if the postmaster was
+started with environment variables specifying a different locale than what
+initdb had been told.  Under these conditions, any use of
+plperl was likely to lead to corrupt indexes.  You might need
+REINDEX to fix existing indexes on
+textual columns if this has happened to you.
+
+Allow more flexible relocation of installation
+directories (Tom)
+Previous releases supported relocation only if all installation
+directory paths were the same except for the last component.
+
+Fix longstanding bug in strpos() and regular expression
+handling in certain rarely used Asian multi-byte character sets (Tatsuo)
+
+
+Various fixes for functions returning RECORDs
+(Tom) 
+
+Fix bug in /contrib/pgcrypto gen_salt,
+which caused it not to use all available salt space for MD5 and
+XDES algorithms (Marko Kreen, Solar Designer)
+Salts for Blowfish and standard DES are unaffected.
+
+Fix /contrib/dblink to throw an error,
+rather than crashing, when the number of columns specified is different from
+what's actually returned by the query (Joe)
+
+
+
+  
+
+  Release 8.0.5
+
+  
+  Release date
+  2005-12-12
+  
+
+  
+   This release contains a variety of fixes from 8.0.4.
+   For information about new features in the 8.0 major release, see
+   .
+  
+
+  
+   Migration to Version 8.0.5
+
+   
+    A dump/restore is not required for those running 8.0.X.  However,
+    if you are upgrading from a version earlier than 8.0.3, see the release
+    notes for 8.0.3.
+   
+  
+
+  
+   Changes
+
+
+
+Fix race condition in transaction log management
+There was a narrow window in which an I/O operation could be initiated
+for the wrong page, leading to an Assert failure or data
+corruption.
+
+
+Fix bgwriter problems after recovering from errors
+(Tom)
+
+The background writer was found to leak buffer pins after write errors.
+While not fatal in itself, this might lead to mysterious blockages of
+later VACUUM commands.
+
+
+
+Prevent failure if client sends Bind protocol message
+when current transaction is already aborted
+
+/contrib/ltree fixes (Teodor)
+
+AIX and HPUX compile fixes (Tom)
+
+Retry file reads and writes after Windows
+NO_SYSTEM_RESOURCES error (Qingqing Zhou)
+
+Fix intermittent failure when log_line_prefix
+includes %i
+
+Fix psql performance issue with long scripts
+on Windows (Merlin Moncure)
+
+Fix missing updates of pg_group flat
+file
+
+Fix longstanding planning error for outer joins
+This bug sometimes caused a bogus error RIGHT JOIN is
+only supported with merge-joinable join conditions.
+
+Postpone timezone initialization until after
+postmaster.pid is created
+This avoids confusing startup scripts that expect the pid file to appear
+quickly.
+
+Prevent core dump in pg_autovacuum when a
+table has been dropped
+
+Fix problems with whole-row references (foo.*)
+to subquery results
+
+
+  
+
+  Release 8.0.4
+
+  
+  Release date
+  2005-10-04
+  
+
+  
+   This release contains a variety of fixes from 8.0.3.
+   For information about new features in the 8.0 major release, see
+   .
+  
+
+  
+   Migration to Version 8.0.4
+
+   
+    A dump/restore is not required for those running 8.0.X.  However,
+    if you are upgrading from a version earlier than 8.0.3, see the release
+    notes for 8.0.3.
+   
+  
+
+  
+   Changes
+
+
+Fix error that allowed VACUUM to remove
+ctid chains too soon, and add more checking in code that follows
+ctid links
+This fixes a long-standing problem that could cause crashes in very rare
+circumstances.
+Fix CHAR() to properly pad spaces to the specified
+length when using a multiple-byte character set (Yoshiyuki Asaba)
+In prior releases, the padding of CHAR() was incorrect
+because it only padded to the specified number of bytes without
+considering how many characters were stored.
+Force a checkpoint before committing CREATE
+DATABASE
+This should fix recent reports of index is not a btree
+failures when a crash occurs shortly after CREATE
+DATABASE.
+Fix the sense of the test for read-only transaction
+in COPY
+The code formerly prohibited COPY TO, where it should
+prohibit COPY FROM.
+
+Handle consecutive embedded newlines in COPY
+CSV-mode input
+Fix date_trunc(week) for dates near year
+end
+Fix planning problem with outer-join ON clauses that reference
+only the inner-side relation
+Further fixes for x FULL JOIN y ON true corner
+cases
+Fix overenthusiastic optimization of x IN (SELECT
+DISTINCT ...) and related cases
+Fix mis-planning of queries with small LIMIT
+values due to poorly thought out fuzzy cost
+comparison
+Make array_in and array_recv more
+paranoid about validating their OID parameter
+Fix missing rows in queries like UPDATE a=... WHERE
+a... with GiST index on column a
+Improve robustness of datetime parsing
+Improve checking for partially-written WAL
+pages
+Improve robustness of signal handling when SSL is
+enabled
+Improve MIPS and M68K spinlock code
+Don't try to open more than max_files_per_process
+files during postmaster startup
+Various memory leakage fixes
+Various portability improvements
+Update timezone data files
+Improve handling of DLL load failures on Windows
+Improve random-number generation on Windows
+Make psql -f filename return a nonzero exit code
+when opening the file fails
+Change pg_dump to handle inherited check
+constraints more reliably
+Fix password prompting in pg_restore on
+Windows
+Fix PL/PgSQL to handle var := var correctly when
+the variable is of pass-by-reference type
+Fix PL/Perl %_SHARED so it's actually
+shared
+Fix contrib/pg_autovacuum to allow sleep
+intervals over 2000 sec
+Update contrib/tsearch2 to use current Snowball
+code
+
+
+  
+
+  Release 8.0.3
+
+  
+  Release date
+  2005-05-09
+  
+
+  
+   This release contains a variety of fixes from 8.0.2, including several
+   security-related issues.
+   For information about new features in the 8.0 major release, see
+   .
+  
+
+  
+   Migration to Version 8.0.3
+
+   
+    A dump/restore is not required for those running 8.0.X.  However,
+    it is one possible way of handling two significant security problems
+    that have been found in the initial contents of 8.0.X system
+    catalogs.  A dump/initdb/reload sequence using 8.0.3's initdb will
+    automatically correct these problems.
+   
+
+   
+    The larger 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.)
+   
+
+   
+    The lesser problem is that the contrib/tsearch2 module
+    creates several functions that are improperly declared to return
+    internal when they do not accept internal arguments.
+    This breaks type safety for all functions using internal
+    arguments.
+   
+
+   
+    It is strongly recommended that all installations repair these errors,
+    either by initdb or by following the manual repair procedure given
+    below.  The errors at least allow unprivileged database users to crash
+    their server process, and might allow unprivileged users to gain the
+    privileges of a database superuser.
+   
+
+   
+    If you wish not to do an initdb, perform the same manual repair
+    procedures shown in the 7.4.8 release
+    notes.
+   
+  
+
+  
+   Changes
+
+
+Change encoding function signature to prevent
+misuse
+Change contrib/tsearch2 to avoid unsafe use of
+INTERNAL function results
+Guard against incorrect second parameter to
+record_out
+Repair ancient race condition that allowed a transaction to be
+seen as committed for some purposes (eg SELECT FOR UPDATE) slightly sooner
+than for other purposes
+This is an extremely serious bug since it could lead to apparent
+data inconsistencies being briefly visible to applications.
+Repair race condition between relation extension and
+VACUUM
+This could theoretically have caused loss of a page's worth of
+freshly-inserted data, although the scenario seems of very low probability.
+There are no known cases of it having caused more than an Assert failure.
+
+Fix comparisons of TIME WITH TIME ZONE values
+
+The comparison code was wrong in the case where the
+--enable-integer-datetimes configuration switch had been used.
+NOTE: if you have an index on a TIME WITH TIME ZONE column,
+it will need to be REINDEXed after installing this update, because
+the fix corrects the sort order of column values.
+
+Fix EXTRACT(EPOCH) for
+TIME WITH TIME ZONE values
+Fix mis-display of negative fractional seconds in
+INTERVAL values
+
+This error only occurred when the
+--enable-integer-datetimes configuration switch had been used.
+
+Fix pg_dump to dump trigger names containing %
+correctly (Neil)
+Still more 64-bit fixes for
+contrib/intagg
+Prevent incorrect optimization of functions returning
+RECORD
+Prevent crash on COALESCE(NULL,NULL)
+Fix Borland makefile for libpq
+Fix contrib/btree_gist for timetz type
+(Teodor)
+Make pg_ctl check the PID found in
+postmaster.pid to see if it is still a live
+process
+Fix pg_dump/pg_restore problems caused
+by addition of dump timestamps
+Fix interaction between materializing holdable cursors and
+firing deferred triggers during transaction commit
+Fix memory leak in SQL functions returning pass-by-reference
+data types
+
+
+  
+
+  Release 8.0.2
+
+  
+  Release date
+  2005-04-07
+  
+
+  
+   This release contains a variety of fixes from 8.0.1.
+   For information about new features in the 8.0 major release, see
+   .
+  
+
+  
+   Migration to Version 8.0.2
+
+   
+    A dump/restore is not required for those running 8.0.*.
+    This release updates the major version number of the
+    PostgreSQL libraries, so it might be
+    necessary to re-link some user applications if they cannot
+    find the properly-numbered shared library.
+   
+  
+
+  
+   Changes
+
+
+Increment the major version number of all interface
+libraries (Bruce)
+
+This should have been done in 8.0.0.  It is required so 7.4.X versions
+of PostgreSQL client applications, like psql,
+can be used on the same machine as 8.0.X applications.  This might require
+re-linking user applications that use these libraries.
+
+Add Windows-only wal_sync_method setting of
+
+
+This setting causes PostgreSQL to write through
+any disk-drive write cache when writing to WAL.
+This behavior was formerly called 
+renamed because it acts quite differently from 
+platforms.
+
+
+Enable the wal_sync_method setting of
+
+ platform (Magnus, Bruce)
+
+Because the default is no longer 
+data loss is possible during a power failure if the disk drive has
+write caching enabled. To turn off the write cache on Windows,
+from the Device Manager, choose the drive properties,
+then Policies.
+
+
+New cache management algorithm 2Q replaces
+ARC (Tom)
+
+This was done to avoid a pending US patent on ARC.  The
+2Q code might be a few percentage points slower than
+ARC for some work loads.  A better cache management algorithm
+will appear in 8.1.
+
+Planner adjustments to improve behavior on freshly-created
+tables (Tom)
+Allow plpgsql to assign to an element of an array that is
+initially NULL (Tom)
+
+Formerly the array would remain NULL, but now it becomes a
+single-element array.  The main SQL engine was changed to handle
+UPDATE of a null array value this way in 8.0, but the similar
+case in plpgsql was overlooked.
+
+
+Convert \r\n and \r to \n
+in plpython function bodies (Michael Fuhr)
+
+ This prevents syntax errors when plpython code is written on a Windows or
+ Mac client.
+
+
+Allow SPI cursors to handle utility commands that return rows,
+such as EXPLAIN (Tom)
+Fix CLUSTER failure after ALTER TABLE
+SET WITHOUT OIDS (Tom)
+Reduce memory usage of ALTER TABLE ADD COLUMN
+(Neil)
+Fix ALTER LANGUAGE RENAME (Tom)
+Document the Windows-only register and
+unregister options of pg_ctl (Magnus)
+Ensure operations done during backend shutdown are counted by
+statistics collector
+
+This is expected to resolve reports of pg_autovacuum
+not vacuuming the system catalogs often enough — it was not being
+told about catalog deletions caused by temporary table removal during
+backend exit.
+
+Change the Windows default for configuration parameter
+log_destination to 
+
+By default, a server running on Windows will now send log output to the
+Windows event logger rather than standard error.
+
+Make Kerberos authentication work on Windows (Magnus)
+Allow ALTER DATABASE RENAME by superusers
+who aren't flagged as having CREATEDB privilege (Tom)
+Modify WAL log entries for CREATE and
+DROP DATABASE to not specify absolute paths (Tom)
+This allows point-in-time recovery on a different machine with possibly
+different database location.  Note that CREATE TABLESPACE still
+poses a hazard in such situations.
+
+Fix crash from a backend exiting with an open transaction
+that created a table and opened a cursor on it (Tom)
+Fix array_map() so it can call PL functions
+(Tom)
+Several contrib/tsearch2 and
+contrib/btree_gist fixes (Teodor)
+
+Fix crash of some contrib/pgcrypto
+functions on some platforms (Marko Kreen)
+Fix contrib/intagg for 64-bit platforms
+(Tom)
+Fix ecpg bugs in parsing of CREATE statement
+(Michael)
+Work around gcc bug on powerpc and amd64 causing problems in
+ecpg (Christof Petig)
+Do not use locale-aware versions of upper(),
+lower(), and initcap() when the locale is
+C (Bruce)
+
+ This allows these functions to work on platforms that generate errors
+ for non-7-bit data when the locale is C.
+
+Fix quote_ident() to quote names that match keywords (Tom)
+Fix to_date() to behave reasonably when
+CC and YY fields are both used (Karel)
+Prevent to_char(interval) from failing
+when given a zero-month interval (Tom)
+Fix wrong week returned by date_trunc('week')
+(Bruce)
+
+date_trunc('week')
+returned the wrong year for the first few days of January in some years.
+
+Use the correct default mask length for class D
+addresses in INET data types (Tom)
+
+
+  
+
+  Release 8.0.1
+
+  
+  Release date
+  2005-01-31
+  
+
+  
+   This release contains a variety of fixes from 8.0.0, including several
+   security-related issues.
+   For information about new features in the 8.0 major release, see
+   .
+  
+
+  
+   Migration to Version 8.0.1
+
+   
+    A dump/restore is not required for those running 8.0.0.
+   
+  
+
+  
+   Changes
+
+
+Disallow LOAD to non-superusers
+
+On platforms that will automatically execute initialization functions of a
+shared library (this includes at least Windows and ELF-based Unixen),
+LOAD can be used to make the server execute arbitrary code.
+Thanks to NGS Software for reporting this.
+Check that creator of an aggregate function has the right to
+execute the specified transition functions
+
+This oversight made it possible to bypass denial of EXECUTE
+permission on a function.
+Fix security and 64-bit issues in
+contrib/intagg
+Add needed STRICT marking to some contrib functions (Kris
+Jurka)
+Avoid buffer overrun when plpgsql cursor declaration has too
+many parameters (Neil)
+Make ALTER TABLE ADD COLUMN enforce domain
+constraints in all cases
+Fix planning error for FULL and RIGHT outer joins
+
+The result of the join was mistakenly supposed to be sorted the same as the
+left input.  This could not only deliver mis-sorted output to the user, but
+in case of nested merge joins could give outright wrong answers.
+
+Improve planning of grouped aggregate queries
+ROLLBACK TO savepoint
+closes cursors created since the savepoint
+Fix inadequate backend stack size on Windows
+Avoid SHGetSpecialFolderPath() on Windows
+(Magnus)
+Fix some problems in running pg_autovacuum as a Windows
+service (Dave Page)
+Multiple minor bug fixes in
+pg_dump/pg_restore
+Fix ecpg segfault with named structs used in
+typedefs (Michael)
+
+
+  
+
+  Release 8.0
+
+  
+   Release date
+   2005-01-19
+  
+
+  
+   Overview
+
+   
+    Major changes in this release:
+   
+
+   
+    
+     
+      Microsoft Windows Native Server
+     
+
+     
+      
+       This is the first PostgreSQL release
+       to run natively on Microsoft Windows as
+       a server. It can run as a Windows service. This
+       release supports NT-based Windows releases like
+       Windows 2000 SP4, Windows XP, and
+       Windows 2003. Older releases like
+       Windows 95, Windows 98, and
+       Windows ME are not supported because these operating
+       systems do not have the infrastructure to support
+       PostgreSQL. A separate installer
+       project has been created to ease installation on
+       Windows — see 
+       url="http://www.postgresql.org/ftp/win32/">.
+      
+
+      
+       Although tested throughout our release cycle, the Windows port
+       does not have the benefit of years of use in production
+       environments that PostgreSQL has on
+       Unix platforms.  Therefore it should be treated with the same
+       level of caution as you would a new product.
+      
+
+      
+       Previous releases required the Unix emulation toolkit
+       Cygwin in order to run the server on Windows
+       operating systems.  PostgreSQL has
+       supported native clients on Windows for many years.
+      
+     
+    
+
+    
+     
+      Savepoints
+     
+
+     
+      
+       Savepoints allow specific parts of a transaction to be aborted
+       without affecting the remainder of the transaction. Prior
+       releases had no such capability; there was no way to recover
+       from a statement failure within a transaction except by
+       aborting the whole transaction. This feature is valuable for
+       application writers who require error recovery within a
+       complex transaction.
+      
+     
+    
+
+    
+     
+      Point-In-Time Recovery
+     
+
+     
+      
+       In previous releases there was no way to recover from disk
+       drive failure except to restore from a previous backup or use
+       a standby replication server.  Point-in-time recovery allows
+       continuous backup of the server.  You can recover either to
+       the point of failure or to some transaction in the past.
+      
+     
+    
+
+    
+     
+      Tablespaces
+     
+
+     
+      
+       Tablespaces allow administrators to select different file systems
+       for storage of individual tables, indexes, and databases.
+       This improves performance and control over disk space
+       usage. Prior releases used initlocation and
+       manual symlink management for such tasks.
+      
+     
+    
+
+    
+     
+      Improved Buffer Management, CHECKPOINT,
+      VACUUM
+     
+
+     
+      
+       This release has a more intelligent buffer replacement strategy,
+       which will make better use of available shared buffers and
+       improve performance. The performance impact of vacuum and
+       checkpoints is also lessened.
+      
+     
+    
+
+    
+     
+      Change Column Types
+     
+
+     
+      
+       A column's data type can now be changed with ALTER
+       TABLE.
+      
+     
+    
+
+    
+     
+      New Perl Server-Side Language
+     
+
+     
+      
+       A new version of the plperl server-side language now
+       supports a persistent shared storage area, triggers, returning records
+       and arrays of records, and SPI calls to access the database.
+      
+     
+    
+
+    
+     
+       Comma-separated-value (CSV) support in COPY
+     
+
+     
+      
+       COPY can now read and write
+       comma-separated-value files. It has the flexibility to
+       interpret nonstandard quoting and separation characters too.
+      
+     
+    
+
+   
+  
+
+  
+   Migration to Version 8.0
+
+   
+    A dump/restore using pg_dump is
+    required for those wishing to migrate data from any previous
+    release.
+   
+
+   
+    Observe the following incompatibilities:
+   
+
+   
+
+    
+     
+      In 
+      now see the results of concurrent transactions committed up to the
+      beginning of each statement within the function, rather than up to the
+      beginning of the interactive command that called the function.
+     
+    
+
+    
+     
+      Functions declared 
+      use the snapshot of the calling query, and therefore do not see the
+      effects of actions taken after the calling query starts, whether in
+      their own transaction or other transactions.  Such a function must be
+      read-only, too, meaning that it cannot use any SQL commands other than
+      SELECT.
+     
+    
+
+    
+     
+      Nondeferred 
+      after completion of the triggering query, rather than upon
+      finishing the current interactive command. This makes a
+      difference when the triggering query occurred within a function:
+      the trigger is invoked before the function proceeds to its next
+      operation.
+     
+    
+
+    
+     
+      Server configuration parameters virtual_host and
+      tcpip_socket have been replaced with a more general
+      parameter listen_addresses. Also, the server now listens on
+      localhost by default, which eliminates the need for the
+      -i postmaster switch in many scenarios.
+     
+    
+
+    
+     
+      Server configuration parameters SortMem and
+      VacuumMem have been renamed to work_mem
+      and maintenance_work_mem to better reflect their
+      use. The original names are still supported in
+      SET and SHOW.
+     
+    
+
+    
+     
+      Server configuration parameters log_pid,
+      log_timestamp, and log_source_port have been
+      replaced with a more general parameter log_line_prefix.
+     
+    
+
+    
+     
+      Server configuration parameter syslog has been
+      replaced with a more logical log_destination variable to
+      control the log output destination.
+     
+    
+
+    
+     
+      Server configuration parameter log_statement has been
+      changed so it can selectively log just database modification or
+      data definition statements.  Server configuration parameter
+      log_duration now prints only when log_statement
+      prints the query.
+     
+    
+
+    
+     
+      Server configuration parameter max_expr_depth parameter has
+      been replaced with max_stack_depth which measures the
+      physical stack size rather than the expression nesting depth. This
+      helps prevent session termination due to stack overflow caused by
+      recursive functions.
+     
+    
+
+    
+     
+      The length() function no longer counts trailing spaces in
+      CHAR(n) values.
+     
+    
+
+   
+    
+     Casting an integer to BIT(N) selects the rightmost N bits of the
+     integer, not the leftmost N bits as before.
+    
+   
+
+   
+    
+     Updating an element or slice of a NULL array value now produces
+     a nonnull array result, namely an array containing
+     just the assigned-to positions.
+    
+   
+
+    
+     
+      Syntax checking of array input values has been tightened up
+      considerably. Junk that was previously allowed in odd places with
+      odd results now causes an error. Empty-string element values
+      must now be written as "", rather than writing nothing.
+      Also changed behavior with respect to whitespace surrounding
+      array elements: trailing whitespace is now ignored, for symmetry
+      with leading whitespace (which has always been ignored).
+     
+    
+
+    
+     
+      Overflow in integer arithmetic operations is now detected and
+      reported as an error.
+     
+    
+
+    
+     
+      The arithmetic operators associated with the single-byte
+      "char" data type have been removed.
+     
+    
+
+    
+     
+      The extract() function (also called
+      date_part) now returns the proper year for BC dates.
+      It previously returned one less than the correct year. The
+      function now also returns the proper values for millennium and
+      century.
+     
+    
+
+   
+    
+     CIDR values now must have their nonmasked bits be zero.
+     For example, we no longer allow
+     204.248.199.1/31 as a CIDR value. Such
+     values should never have been accepted by
+     PostgreSQL and will now be rejected.
+    
+   
+
+    
+     
+      EXECUTE now returns a completion tag that
+      matches the executed statement.
+     
+    
+
+    
+     
+      psql's \copy command now reads or
+      writes to the query's stdin/stdout, rather than
+      psql's stdin/stdout. The previous
+      behavior can be accessed via new
+      
+     
+    
+
+    
+     
+     The JDBC client interface has been removed from the core
+     distribution, and is now hosted at 
+     "http://jdbc.postgresql.org">.
+     
+    
+
+    
+     
+     The Tcl client interface has also been removed. There are several
+     Tcl interfaces now hosted at 
+     "http://gborg.postgresql.org">.
+     
+    
+
+    
+     
+      The server now uses its own time zone database, rather than the
+      one supplied by the operating system. This will provide consistent
+      behavior across all platforms.  In most cases, there should be
+      little noticeable difference in time zone behavior, except that
+      the time zone names used by SET/SHOW
+      TimeZone might be different from what your platform provides.
+     
+    
+
+    
+     
+      Configure's threading option no longer requires
+      users to run tests or edit configuration files; threading options
+      are now detected automatically.
+     
+    
+
+    
+     
+      Now that tablespaces have been implemented,
+      initlocation has been removed.
+     
+    
+
+    
+     
+      The API for user-defined GiST indexes has been changed. The
+      Union and PickSplit methods are now passed a pointer to a
+      special GistEntryVector structure,
+      rather than a bytea.
+     
+    
+
+   
+  
+
+  Deprecated Features
+
+  
+    Some aspects of PostgreSQL's behavior
+    have been determined to be suboptimal. For the sake of backward
+    compatibility these have not been removed in 8.0, but they are
+    considered deprecated and will be removed in the next major
+    release.
+    
+
+   
+    
+     
+      The 8.1 release will remove the to_char() function
+      for intervals.
+     
+    
+
+     
+      
+       The server now warns of empty strings passed to
+       oid/float4/float8 data
+       types, but continues to interpret them as zeroes as before.
+       In the next major release, empty strings will be considered
+       invalid input for these data types.
+      
+     
+
+    
+     
+      By default, tables in PostgreSQL 8.0
+      and earlier are created with OIDs. In the next release,
+      this will not be the case: to create a table
+      that contains OIDs, the 
+      be specified or the default_with_oids
+      configuration parameter must be set. Users are encouraged to
+      explicitly specify 
+      require OIDs for compatibility with future releases of
+      PostgreSQL.
+     
+    
+
+   
+  
+
+  
+   Changes
+
+   
+    Below you will find a detailed account of the changes between
+    release 8.0 and the previous major release.
+   
+
+   
+    Performance Improvements
+    
+
+     
+      
+       Support cross-data-type index usage (Tom)
+      
+      
+       Before this change, many queries would not use an index if the data
+       types did not match exactly. This improvement makes index usage more
+       intuitive and consistent.
+      
+     
+
+     
+      
+       New buffer replacement strategy that improves caching (Jan)
+      
+      
+       Prior releases used a least-recently-used (LRU) cache to keep
+       recently referenced pages in memory. The LRU algorithm
+       did not consider the number of times a specific cache entry was
+       accessed, so large table scans could force out useful cache pages.
+       The new cache algorithm uses four separate lists to track most
+       recently used and most frequently used cache pages and dynamically
+       optimize their replacement based on the work load. This should
+       lead to much more efficient use of the shared buffer cache.
+       Administrators who have tested shared buffer sizes in the past
+       should retest with this new cache replacement policy.
+      
+     
+
+     
+      
+       Add subprocess to write dirty buffers periodically to reduce
+       checkpoint writes (Jan)
+      
+      
+       In previous releases, the checkpoint process, which runs every few
+       minutes, would write all dirty buffers to the operating system's
+       buffer cache then flush all dirty operating system buffers to
+       disk. This resulted in a periodic spike in disk usage that often
+       hurt performance. The new code uses a background writer to trickle
+       disk writes at a steady pace so checkpoints have far fewer dirty
+       pages to write to disk. Also, the new code does not issue a global
+       sync() call, but instead fsync()s just
+       the files written since the last checkpoint. This should improve
+       performance and minimize degradation during checkpoints.
+      
+     
+
+     
+      
+       Add ability to prolong vacuum to reduce performance impact (Jan)
+      
+      
+       On busy systems, VACUUM performs many I/O
+       requests which can hurt performance for other users. This
+       release allows you to slow down VACUUM to
+       reduce its impact on other users, though this increases the
+       total duration of VACUUM.
+      
+     
+
+     
+      
+       Improve B-tree index performance for duplicate keys (Dmitry Tkach, Tom)
+      
+      
+       This improves the way indexes are scanned when many duplicate
+       values exist in the index.
+      
+     
+
+     
+      
+       Use dynamically-generated table size estimates while planning (Tom)
+      
+      
+       Formerly the planner estimated table sizes using the values seen
+       by the last VACUUM or ANALYZE,
+       both as to physical table size (number of pages) and number of rows.
+       Now, the current physical table size is obtained from the kernel,
+       and the number of rows is estimated by multiplying the table size
+       by the row density (rows per page) seen by the last
+       VACUUM or ANALYZE.  This should
+       produce more reliable estimates in cases where the table size has
+       changed significantly since the last housekeeping command.
+      
+     
+
+     
+      
+       Improved index usage with OR clauses (Tom)
+      
+      
+       This allows the optimizer to use indexes in statements with many OR
+       clauses that would not have been indexed in the past.  It can also use
+       multi-column indexes where the first column is specified and the second
+       column is part of an OR clause.
+      
+     
+
+     
+      
+       Improve matching of partial index clauses (Tom)
+      
+      
+       The server is now smarter about using partial indexes in queries
+       involving complex 
+      
+     
+
+     
+      
+       Improve performance of the GEQO optimizer (Tom)
+      
+      
+       The GEQO optimizer is used to plan queries involving many tables (by
+       default, twelve or more). This release speeds up the way queries are
+       analyzed to decrease time spent in optimization.
+      
+     
+
+     
+      
+       Miscellaneous optimizer improvements
+      
+      
+       There is not room here to list all the minor improvements made, but
+       numerous special cases work better than in prior releases.
+      
+     
+
+     
+      
+       Improve lookup speed for C functions (Tom)
+      
+      
+       This release uses a hash table to lookup information for dynamically
+       loaded C functions. This improves their speed so they perform nearly as
+       quickly as functions that are built into the server executable.
+      
+     
+
+     
+      
+       Add type-specific ANALYZE statistics
+       capability (Mark Cave-Ayland)
+      
+      
+       This feature allows more flexibility in generating statistics
+       for nonstandard data types.
+      
+     
+
+     
+      
+       ANALYZE now collects statistics for
+       expression indexes (Tom)
+      
+      
+       Expression indexes (also called functional indexes) allow users to
+       index not just columns but the results of expressions and function
+       calls. With this release, the optimizer can gather and use statistics
+       about the contents of expression indexes.  This will greatly improve
+       the quality of planning for queries in which an expression index is
+       relevant.
+      
+     
+
+     
+      
+       New two-stage sampling method for ANALYZE
+       (Manfred Koizar)
+      
+      
+       This gives better statistics when the density of valid rows is very
+       different in different regions of a table.
+      
+     
+
+     
+      
+       Speed up TRUNCATE (Tom)
+      
+      
+       This buys back some of the performance loss observed in 7.4, while still
+       keeping TRUNCATE transaction-safe.
+      
+     
+
+    
+   
+
+
+   
+    Server Changes
+    
+
+     
+      
+       Add WAL file archiving and point-in-time recovery (Simon Riggs)
+      
+     
+
+     
+      
+       Add tablespaces so admins can control disk layout (Gavin)
+      
+     
+
+     
+      
+       Add a built-in log rotation program (Andreas Pflug)
+      
+      
+       It is now possible to log server messages conveniently without
+       relying on either syslog or an external log
+       rotation program.
+      
+     
+
+     
+      
+       Add new read-only server configuration parameters to show server
+       compile-time settings: block_size,
+       integer_datetimes, max_function_args,
+       max_identifier_length, max_index_keys  (Joe)
+      
+     
+
+     
+      
+       Make quoting of sameuser, samegroup, and
+       all remove special meaning of these terms in
+       pg_hba.conf (Andrew)
+      
+     
+
+     
+      
+       Use clearer IPv6 name ::1/128 for
+       localhost in default pg_hba.conf (Andrew)
+      
+     
+
+     
+      
+       Use CIDR format in pg_hba.conf examples (Andrew)
+      
+     
+
+     
+      
+       Rename server configuration parameters SortMem and
+       VacuumMem to work_mem and
+       maintenance_work_mem (Old names still supported) (Tom)
+      
+      
+       This change was made to clarify that bulk operations such as index and
+       foreign key creation use maintenance_work_mem, while
+       work_mem is for workspaces used during query execution.
+      
+     
+
+     
+      
+       Allow logging of session disconnections using server configuration
+       log_disconnections (Andrew)
+      
+     
+
+     
+      
+       Add new server configuration parameter log_line_prefix to
+       allow control of information emitted in each log line (Andrew)
+      
+      
+       Available information includes user name, database name, remote IP
+       address, and session start time.
+      
+     
+
+     
+      
+       Remove server configuration parameters log_pid,
+       log_timestamp, log_source_port; functionality
+       superseded by log_line_prefix (Andrew)
+      
+     
+
+     
+      
+       Replace the virtual_host and tcpip_socket
+       parameters with a unified listen_addresses parameter
+       (Andrew, Tom)
+      
+      
+       virtual_host could only specify a single IP address to
+       listen on.  listen_addresses allows multiple addresses
+       to be specified.
+      
+     
+
+     
+      
+       Listen on localhost by default, which eliminates the need for the
+       
+      
+      
+       Listening on localhost (127.0.0.1) opens no new
+       security holes but allows configurations like Windows and JDBC,
+       which do not support local sockets, to work without special
+       adjustments.
+      
+     
+
+     
+      
+       Remove syslog server configuration parameter, and add more
+       logical log_destination variable to control log output
+       location (Magnus)
+      
+     
+
+     
+      
+       Change server configuration parameter log_statement to take
+       values all, mod, ddl, or
+       none to select which queries are logged (Bruce)
+      
+      
+       This allows administrators to log only data definition changes or
+       only data modification statements.
+      
+     
+
+     
+      
+       Some logging-related configuration parameters could formerly be adjusted
+       by ordinary users, but only in the more verbose direction.
+       They are now treated more strictly: only superusers can set them.
+       However, a superuser can use ALTER USER to provide per-user
+       settings of these values for non-superusers.  Also, it is now possible
+       for superusers to set values of superuser-only configuration parameters
+       via PGOPTIONS.
+      
+     
+
+     
+      
+       Allow configuration files to be placed outside the data directory (mlw)
+      
+      
+       By default, configuration files are kept in the cluster's top directory.
+       With this addition, configuration files can be placed outside the
+       data directory, easing administration.
+      
+     
+
+     
+      
+       Plan prepared queries only when first executed so constants can be
+       used for statistics (Oliver Jowett)
+      
+      
+       Prepared statements plan queries once and execute them many
+       times. While prepared queries avoid the overhead of re-planning
+       on each use, the quality of the plan suffers from not knowing the exact
+       parameters to be used in the query.  In this release, planning of
+       unnamed prepared statements is delayed until the first execution,
+       and the actual parameter values of that execution are used as
+       optimization hints.  This allows use of out-of-line parameter passing
+       without incurring a performance penalty.
+      
+     
+
+     
+      
+       Allow DECLARE CURSOR to take parameters
+       (Oliver Jowett)
+      
+      
+       It is now useful to issue DECLARE CURSOR in a
+       Parse message with parameters. The parameter values
+       sent at Bind time will be substituted into the
+       execution of the cursor's query.
+      
+     
+
+     
+      
+       Fix hash joins and aggregates of inet and
+       cidr data types (Tom)
+      
+      
+       Release 7.4 handled hashing of mixed inet and
+       cidr values incorrectly.  (This bug did not exist
+       in prior releases because they wouldn't try to hash either
+       data type.)
+      
+     
+
+     
+      
+       Make log_duration print only when log_statement
+       prints the query (Ed L.)
+      
+     
+
+    
+   
+
+
+   
+    Query Changes
+    
+
+     
+      
+       Add savepoints (nested transactions) (Alvaro)
+      
+     
+
+     
+      
+       Unsupported isolation levels are now accepted and promoted to the
+       nearest supported level (Peter)
+      
+      
+       The SQL specification states that if a database doesn't support a
+       specific isolation level, it should use the next more restrictive level.
+       This change complies with that recommendation.
+      
+     
+
+     
+      
+       Allow BEGIN WORK to specify transaction
+       isolation levels like START TRANSACTION does
+       (Bruce)
+      
+     
+
+     
+      
+       Fix table permission checking for cases in which rules generate
+       a query type different from the originally submitted query (Tom)
+      
+     
+
+     
+      
+       Implement dollar quoting to simplify single-quote usage (Andrew, Tom,
+       David Fetter)
+      
+      
+       In previous releases, because single quotes had to be used to
+       quote a function's body, the use of single quotes inside the
+       function text required use of two single quotes or other error-prone
+       notations. With this release we add the ability to use "dollar
+       quoting" to quote a block of text.  The ability to use different
+       quoting delimiters at different nesting levels greatly simplifies
+       the task of quoting correctly, especially in complex functions.
+       Dollar quoting can be used anywhere quoted text is needed.
+      
+     
+
+     
+      
+       Make CASE val WHEN compval1 THEN ... evaluate val only once (Tom)
+      
+      
+       
+       times. This has benefits when the expression is complex or is
+       volatile.
+      
+     
+
+     
+      
+       Test 
+       aggregate query (Tom)
+      
+      
+       Fixes improper failure of cases such as SELECT SUM(win)/SUM(lose)
+       ... GROUP BY ... HAVING SUM(lose) > 0.  This should work but formerly
+       could fail with divide-by-zero.
+      
+     
+
+     
+      
+       Replace max_expr_depth parameter with
+       max_stack_depth parameter, measured in kilobytes of stack
+       size (Tom)
+      
+      
+      This gives us a fairly bulletproof defense against crashing due to
+      runaway recursive functions. Instead of measuring the depth of expression
+      nesting, we now directly measure the size of the execution stack.
+      
+     
+
+     
+      
+       Allow arbitrary row expressions (Tom)
+      
+      
+       This release allows SQL expressions to contain arbitrary composite
+       types, that is, row values. It also allows functions to more easily
+       take rows as arguments and return row values.
+      
+     
+
+     
+      
+       Allow 
+       in row and subselect comparisons (Fabien Coelho)
+      
+     
+
+     
+      
+       Avoid locale-specific case conversion of basic ASCII letters in
+       identifiers and keywords (Tom)
+      
+      
+       This solves the Turkish problem with mangling of words
+       containing I and  i.  Folding of characters
+       outside the 7-bit-ASCII set is still locale-aware.
+      
+     
+
+     
+      
+       Improve syntax error reporting (Fabien, Tom)
+      
+      
+       Syntax error reports are more useful than before.
+      
+     
+
+     
+      
+       Change EXECUTE to return a completion tag
+       matching the executed statement (Kris Jurka)
+      
+      
+       Previous releases return an EXECUTE tag for
+       any EXECUTE call. In this release, the tag
+       returned will reflect the command executed.
+      
+     
+
+     
+      
+       Avoid emitting 
+      
+      
+       Such a clause makes no logical sense, but in some cases the rule
+       decompiler formerly produced this syntax.
+      
+     
+
+    
+   
+
+
+   
+    Object Manipulation Changes
+    
+
+     
+      
+       Add COMMENT ON for casts, conversions, languages,
+       operator classes, and large objects (Christopher)
+      
+     
+
+     
+      
+       Add new server configuration parameter default_with_oids to
+       control whether tables are created with OIDs by default (Neil)
+      
+      
+       This allows administrators to control whether CREATE
+       TABLE commands create tables with or without OID
+       columns by default.  (Note: the current factory default setting for
+       default_with_oids is TRUE, but the default
+       will become FALSE in future releases.)
+      
+     
+
+     
+      
+       Add 
+       CREATE TABLE AS (Neil)
+      
+     
+
+     
+      
+       Allow ALTER TABLE DROP COLUMN to drop an OID
+       column (ALTER TABLE SET WITHOUT OIDS still works)
+       (Tom)
+      
+     
+
+     
+      
+       Allow composite types as table columns (Tom)
+      
+     
+
+     
+      
+       Allow ALTER ... ADD COLUMN with defaults and
+       
+      
+      
+       It is now possible for 
+       that is not initially filled with NULLs, but with a specified
+       default value.
+      
+     
+
+     
+      
+       Add ALTER COLUMN TYPE to change column's type (Rod)
+      
+      
+       It is now possible to alter a column's data type without dropping
+       and re-adding the column.
+      
+     
+
+     
+      
+       Allow multiple ALTER actions in a single ALTER
+       TABLE command (Rod)
+      
+      
+       This is particularly useful for ALTER commands that
+       rewrite the table (which include 
+       
+       ALTER commands together, the table need be rewritten
+       only once.
+      
+     
+
+     
+      
+       Allow ALTER TABLE to add SERIAL
+       columns (Tom)
+      
+      
+       This falls out from the new capability of specifying defaults for new
+       columns.
+      
+     
+
+     
+      
+       Allow changing the owners of aggregates, conversions, databases,
+       functions, operators, operator classes, schemas, types, and tablespaces
+       (Christopher, Euler Taveira de Oliveira)
+      
+      
+       Previously this required modifying the system tables directly.
+      
+     
+
+     
+      
+       Allow temporary object creation to be limited to 
+       DEFINER functions (Sean Chittenden)
+      
+     
+
+     
+      
+       Add 
+      
+      
+       Prior to this release, there was no way to clear an auto-cluster
+       specification except to modify the system tables.
+      
+     
+
+     
+      
+       Constraint/Index/SERIAL names are now
+       table_column_type
+       with numbers appended to guarantee uniqueness within the schema
+       (Tom)
+      
+      
+       The SQL specification states that such names should be unique
+       within a schema.
+      
+     
+
+     
+      
+       Add pg_get_serial_sequence() to return a
+       SERIAL column's sequence name (Christopher)
+      
+      
+       This allows automated scripts to reliably find the SERIAL
+       sequence name.
+      
+     
+
+     
+      
+       Warn when primary/foreign key data type mismatch requires costly lookup
+      
+     
+
+     
+      
+       New ALTER INDEX command to allow moving of indexes
+       between tablespaces (Gavin)
+      
+     
+
+     
+      
+       Make ALTER TABLE OWNER change dependent sequence
+       ownership too (Alvaro)
+      
+     
+
+
+    
+   
+
+
+   
+    Utility Command Changes
+    
+
+     
+      
+       Allow CREATE SCHEMA to create triggers,
+       indexes, and sequences (Neil)
+      
+     
+
+     
+      
+       Add 
+       Coelho)
+      
+      
+       This allows 
+       
+      
+     
+
+     
+      
+       Add 
+      
+      
+       This allows the LOCK command to fail if it
+       would have to wait for the requested lock.
+      
+     
+
+     
+      
+       Allow COPY to read and write
+       comma-separated-value (CSV) files (Andrew, Bruce)
+      
+     
+
+     
+      
+       Generate error if the COPY delimiter and NULL
+       string conflict (Bruce)
+      
+     
+
+     
+      
+       GRANT/REVOKE behavior
+       follows the SQL spec more closely
+      
+     
+
+     
+      
+       Avoid locking conflict between CREATE INDEX
+       and CHECKPOINT (Tom)
+      
+      
+       In 7.3 and 7.4, a long-running B-tree index build could block concurrent
+       CHECKPOINTs from completing, thereby causing WAL bloat because the
+       WAL log could not be recycled.
+      
+     
+
+     
+      
+       Database-wide ANALYZE does not hold locks
+       across tables (Tom)
+      
+      
+       This reduces the potential for deadlocks against other backends
+       that want exclusive locks on tables.  To get the benefit of this
+       change, do not execute database-wide ANALYZE
+       inside a transaction block (BEGIN block); it
+       must be able to commit and start a new transaction for each
+       table.
+      
+     
+
+     
+      
+       REINDEX does not exclusively lock the index's
+       parent table anymore
+      
+      
+       The index itself is still exclusively locked, but readers of the
+       table can continue if they are not using the particular index
+       being rebuilt.
+      
+     
+
+     
+      
+       Erase MD5 user passwords when a user is renamed (Bruce)
+      
+      
+       PostgreSQL uses the user name as salt
+       when encrypting passwords via MD5. When a user's name is changed,
+       the salt will no longer match the stored MD5 password, so the
+       stored password becomes useless.  In this release a notice is
+       generated and the password is cleared.  A new password must then
+       be assigned if the user is to be able to log in with a password.
+      
+     
+
+     
+      
+       New pg_ctl 
+      
+      
+       Windows does not have a kill command to send signals to
+       backends so this capability was added to pg_ctl.
+      
+     
+
+     
+      
+       Information schema improvements
+      
+     
+
+     
+      
+       Add 
+       initdb so the initial password can be
+       set by GUI tools (Magnus)
+      
+     
+
+     
+      
+       Detect locale/encoding mismatch in
+       initdb (Peter)
+      
+     
+
+     
+      
+       Add 
+       register Windows operating system service (Dave Page)
+      
+     
+
+    
+   
+
+
+   
+    Data Type and Function Changes
+    
+
+     
+      
+       More complete support for composite types (row types)  (Tom)
+      
+      
+       Composite values can be used in many places where only scalar values
+       worked before.
+      
+     
+
+     
+      
+       Reject nonrectangular array values as erroneous (Joe)
+      
+      
+       Formerly, array_in would silently build a
+       surprising result.
+      
+     
+
+      
+       
+        Overflow in integer arithmetic operations is now detected (Tom)
+       
+      
+
+      
+       
+        The arithmetic operators associated with the single-byte
+        "char" data type have been removed.
+       
+       
+        Formerly, the parser would select these operators in many situations
+        where an unable to select an operator error would be more
+        appropriate, such as null * null.  If you actually want
+        to do arithmetic on a "char" column, you can cast it to
+        integer explicitly.
+       
+      
+
+     
+       
+        Syntax checking of array input values considerably tightened up (Joe)
+       
+      
+        Junk that was previously allowed in odd places with odd results
+        now causes an ERROR, for example, non-whitespace
+        after the closing right brace.
+       
+     
+
+     
+       
+        Empty-string array element values must now be written as
+        "", rather than writing nothing (Joe)
+       
+      
+        Formerly, both ways of writing an empty-string element value were
+        allowed, but now a quoted empty string is required.  The case where
+        nothing at all appears will probably be considered to be a NULL
+        element value in some future release.
+       
+     
+
+     
+       
+        Array element trailing whitespace is now ignored (Joe)
+       
+      
+        Formerly leading whitespace was ignored, but trailing whitespace
+        between an element value and the delimiter or right brace was
+        significant.  Now trailing whitespace is also ignored.
+       
+     
+
+     
+      
+       Emit array values with explicit array bounds when lower bound is not one
+       (Joe)
+      
+     
+
+     
+      
+       Accept YYYY-monthname-DD as a date string (Tom)
+      
+     
+
+     
+      
+       Make netmask and hostmask functions
+       return maximum-length mask length (Tom)
+      
+     
+
+     
+      
+       Change factorial function to return numeric (Gavin)
+      
+      
+       Returning numeric allows the factorial function to
+       work for a wider range of input values.
+      
+     
+
+     
+      
+       to_char/to_date() date conversion
+       improvements (Kurt Roeckx, Fabien Coelho)
+      
+     
+
+     
+      
+       Make length() disregard trailing spaces in
+       CHAR(n) (Gavin)
+      
+      
+       This change was made to improve consistency: trailing spaces are
+       semantically insignificant in CHAR(n) data, so they
+       should not be counted by length().
+      
+     
+
+     
+      
+       Warn about empty string being passed to
+       OID/float4/float8 data types (Neil)
+      
+      
+       8.1 will throw an error instead.
+      
+     
+
+     
+      
+       Allow leading or trailing whitespace in
+       int2/int4/int8/float4/float8
+       input routines
+       (Neil)
+      
+     
+
+     
+      
+       Better support for IEEE Infinity and NaN
+       values in float4/float8 (Neil)
+      
+      
+       These should now work on all platforms that support IEEE-compliant
+       floating point arithmetic.
+      
+     
+
+     
+      
+       Add 
+      
+     
+
+     
+      
+       Fix to_char for 1 BC
+       (previously it returned 1 AD) (Bruce)
+      
+     
+
+     
+      
+       Fix date_part(year) for BC dates (previously it
+       returned one less than the correct year) (Bruce)
+      
+     
+
+     
+      
+       Fix date_part() to return the proper millennium and
+       century (Fabien Coelho)
+      
+      
+       In previous versions, the century and millennium results had a wrong
+       number and started in the wrong year, as compared to standard
+       reckoning of such things.
+      
+     
+
+     
+      
+       Add ceiling() as an alias for ceil(),
+       and power() as an alias for pow() for
+       standards compliance (Neil)
+      
+     
+
+     
+      
+       Change ln(), log(),
+       power(), and sqrt() to emit the correct
+       SQLSTATE error codes for certain error conditions, as
+       specified by SQL:2003 (Neil)
+      
+     
+
+     
+      
+       Add width_bucket() function as defined by SQL:2003 (Neil)
+      
+     
+
+     
+      
+       Add generate_series() functions to simplify working
+       with numeric sets (Joe)
+      
+     
+
+     
+      
+       Fix upper/lower/initcap() functions to work with
+       multibyte encodings (Tom)
+      
+     
+
+     
+      
+       Add boolean and bitwise integer 
+       aggregates (Fabien Coelho)
+      
+     
+
+     
+      
+       New session information functions to return network addresses for client
+       and server (Sean Chittenden)
+      
+     
+
+     
+      
+       Add function to determine the area of a closed path (Sean Chittenden)
+      
+     
+
+     
+      
+       Add function to send cancel request to other backends (Magnus)
+      
+     
+
+     
+      
+       Add interval plus datetime operators (Tom)
+      
+      
+       The reverse ordering, datetime plus interval,
+       was already supported, but both are required by the SQL standard.
+      
+     
+
+     
+      
+       Casting an integer to BIT(N) selects the rightmost N bits
+       of the integer
+       (Tom)
+      
+      
+       In prior releases, the leftmost N bits were selected, but this was
+       deemed unhelpful, not to mention inconsistent with casting from bit
+       to int.
+      
+     
+
+     
+      
+       Require CIDR values to have all nonmasked bits be zero
+       (Kevin Brintnall)
+      
+     
+
+    
+   
+
+
+   
+    Server-Side Language Changes
+    
+
+     
+      
+       In READ COMMITTED serialization mode, volatile functions
+       now see the results of concurrent transactions committed up to the
+       beginning of each statement within the function, rather than up to the
+       beginning of the interactive command that called the function.
+      
+     
+
+     
+      
+       Functions declared STABLE or IMMUTABLE always
+       use the snapshot of the calling query, and therefore do not see the
+       effects of actions taken after the calling query starts, whether in
+       their own transaction or other transactions.  Such a function must be
+       read-only, too, meaning that it cannot use any SQL commands other than
+       SELECT.  There is a considerable performance gain from
+       declaring a function STABLE or IMMUTABLE
+       rather than VOLATILE.
+      
+     
+
+     
+      
+       Nondeferred 
+       after completion of the triggering query, rather than upon
+       finishing the current interactive command. This makes a difference
+       when the triggering query occurred within a function: the trigger
+       is invoked before the function proceeds to its next operation. For
+       example, if a function inserts a new row into a table, any
+       nondeferred foreign key checks occur before proceeding with the
+       function.
+      
+     
+
+     
+      
+       Allow function parameters to be declared with names (Dennis Björklund)
+      
+      
+       This allows better documentation of functions.  Whether the names
+       actually do anything depends on the specific function language
+       being used.
+      
+     
+
+     
+      
+       Allow PL/pgSQL parameter names to be referenced in the function (Dennis Björklund)
+      
+      
+       This basically creates an automatic alias for each named parameter.
+      
+     
+
+     
+      
+       Do minimal syntax checking of PL/pgSQL functions at creation time (Tom)
+      
+      
+       This allows us to catch simple syntax errors sooner.
+      
+     
+
+     
+      
+       More support for composite types (row and record variables) in PL/pgSQL
+      
+      
+       For example, it now works to pass a rowtype variable to another function
+       as a single variable.
+      
+     
+
+     
+      
+       Default values for PL/pgSQL variables can now reference previously
+       declared variables
+      
+     
+
+     
+      
+       Improve parsing of PL/pgSQL FOR loops (Tom)
+      
+      
+       Parsing is now driven by presence of ".." rather than
+       data type of 
+       correct functions, but should result in more understandable error
+       messages when a mistake is made.
+      
+     
+
+     
+      
+       Major overhaul of PL/Perl server-side language (Command Prompt, Andrew Dunstan)
+      
+     
+
+     
+      
+       In PL/Tcl, SPI commands are now run in subtransactions.  If an error
+       occurs, the subtransaction is cleaned up and the error is reported
+       as an ordinary Tcl error, which can be trapped with catch.
+       Formerly, it was not possible to catch such errors.
+      
+     
+
+     
+      
+       Accept ELSEIF in PL/pgSQL (Neil)
+      
+      
+       Previously PL/pgSQL only allowed ELSIF, but many people
+       are accustomed to spelling this keyword ELSEIF.
+      
+     
+
+    
+   
+
+
+   
+    <application>psql</> Changes
+    
+
+     
+      
+       Improve psql information display about database
+       objects (Christopher)
+      
+     
+
+     
+      
+       Allow psql to display group membership in
+       \du and \dg (Markus Bertheau)
+      
+     
+
+     
+      
+       Prevent psql \dn from showing
+       temporary schemas (Bruce)
+      
+     
+
+     
+      
+       Allow psql to handle tilde user expansion for file
+       names (Zach Irmen)
+      
+     
+
+     
+      
+       Allow psql to display fancy prompts, including
+       color, via readline (Reece Hart, Chet Ramey)
+      
+     
+
+     
+      
+       Make psql \copy match COPY command syntax
+       fully (Tom)
+      
+     
+
+     
+      
+       Show the location of syntax errors (Fabien Coelho, Tom)
+      
+     
+
+     
+      
+       Add CLUSTER information to psql
+       \d display
+       (Bruce)
+      
+     
+
+     
+      
+       Change psql \copy stdin/stdout to read
+       from command input/output (Bruce)
+      
+     
+
+     
+      
+       Add 
+       psql's stdin/stdout (Mark
+       Feit)
+      
+     
+
+     
+      
+       Add global psql configuration file, psqlrc.sample
+       (Bruce)
+      
+      
+       This allows a central file where global psql startup commands can
+       be stored.
+      
+     
+
+     
+      
+       Have psql \d+ indicate if the table
+       has an OID column (Neil)
+      
+     
+
+     
+      
+       On Windows, use binary mode in psql when reading files so control-Z
+       is not seen as end-of-file
+      
+     
+
+     
+      
+       Have \dn+ show permissions and description for schemas (Dennis
+       Björklund)
+      
+     
+
+     
+      
+       Improve tab completion support (Stefan Kaltenbrunn, Greg Sabino Mullane)
+      
+     
+
+     
+      
+       Allow boolean settings to be set using upper or lower case (Michael Paesold)
+      
+     
+
+    
+   
+
+
+   
+    <application>pg_dump</> Changes
+    
+
+     
+      
+       Use dependency information to improve the reliability of
+       pg_dump (Tom)
+      
+      
+       This should solve the longstanding problems with related objects
+       sometimes being dumped in the wrong order.
+      
+     
+
+     
+      
+       Have pg_dump output objects in alphabetical order if possible (Tom)
+      
+      
+       This should make it easier to identify changes between
+       dump files.
+      
+     
+
+     
+      
+       Allow pg_restore to ignore some SQL errors (Fabien Coelho)
+      
+      
+       This makes pg_restore's behavior similar to the
+       results of feeding a pg_dump output script to
+       psql. In most cases, ignoring errors and plowing
+       ahead is the most useful thing to do. Also added was a pg_restore
+       option to give the old behavior of exiting on an error.
+      
+     
+
+     
+      
+       pg_restore 
+       objects' schema names
+      
+     
+
+     
+      
+       New begin/end markers in pg_dump text output (Bruce)
+      
+     
+
+     
+      
+       Add start/stop times for
+       pg_dump/pg_dumpall in verbose mode
+       (Bruce)
+      
+     
+
+     
+      
+       Allow most pg_dump options in
+       pg_dumpall (Christopher)
+      
+     
+
+     
+      
+       Have pg_dump use ALTER OWNER rather
+       than SET SESSION AUTHORIZATION by default
+       (Christopher)
+      
+     
+
+    
+   
+
+
+   
+    libpq Changes
+    
+
+     
+      
+       Make libpq's 
+      
+     
+
+     
+      
+       Add PQmbdsplen() which returns the display length
+       of a character (Tatsuo)
+      
+     
+
+     
+      
+       Add thread locking to SSL and
+       Kerberos connections (Manfred Spraul)
+      
+     
+
+     
+      
+       Allow PQoidValue(), PQcmdTuples(), and
+       PQoidStatus() to work on EXECUTE
+       commands (Neil)
+      
+     
+
+     
+      
+       Add PQserverVersion() to provide more convenient
+       access to the server version number (Greg Sabino Mullane)
+      
+     
+
+     
+      
+       Add PQprepare/PQsendPrepared() functions to support
+       preparing statements without necessarily specifying the data types
+       of their parameters (Abhijit Menon-Sen)
+      
+     
+
+     
+      
+       Many ECPG improvements, including SET DESCRIPTOR (Michael)
+      
+     
+
+    
+   
+
+
+   
+    Source Code Changes
+    
+
+     
+      
+       Allow the database server to run natively on Windows (Claudio, Magnus, Andrew)
+      
+     
+
+     
+      
+       Shell script commands converted to C versions for Windows support (Andrew)
+      
+     
+
+     
+      
+       Create an extension makefile framework (Fabien Coelho, Peter)
+      
+      
+       This simplifies the task of building extensions outside the original
+       source tree.
+      
+     
+
+     
+      
+       Support relocatable installations (Bruce)
+      
+      
+       Directory paths for installed files (such as the
+       /share directory) are now computed relative to the
+       actual location of the executables, so that an installation tree
+       can be moved to another place without reconfiguring and
+       rebuilding.
+      
+     
+
+     
+      
+       Use 
+       allow 
+      
+     
+
+     
+      
+       Add 
+      
+     
+
+     
+      
+       Upgrade to DocBook V4.2 SGML (Peter)
+      
+     
+
+     
+      
+       New PostgreSQL CVS tag (Marc)
+      
+      
+       This was done to make it easier for organizations to manage their
+       own copies of the PostgreSQL
+       CVS repository. File version stamps from the master
+       repository will not get munged by checking into or out of a copied
+       repository.
+      
+     
+
+     
+      
+       Clarify locking code (Manfred Koizar)
+      
+     
+
+     
+      
+       Buffer manager cleanup (Neil)
+      
+     
+
+     
+      
+       Decouple platform tests from CPU spinlock code (Bruce, Tom)
+      
+     
+
+     
+      
+       Add inlined test-and-set code on PA-RISC for gcc
+       (ViSolve, Tom)
+      
+     
+
+     
+      
+       Improve i386 spinlock code (Manfred Spraul)
+      
+     
+
+     
+      
+       Clean up spinlock assembly code to avoid warnings from newer
+       gcc releases (Tom)
+      
+     
+
+     
+      
+       Remove JDBC from source tree; now a separate project
+      
+     
+
+     
+      
+       Remove the libpgtcl client interface; now a separate project
+      
+     
+
+     
+      
+       More accurately estimate memory and file descriptor usage (Tom)
+      
+     
+
+     
+      
+       Improvements to the Mac OS X startup scripts (Ray A.)
+      
+     
+
+     
+      
+       New fsync() test program (Bruce)
+      
+     
+
+     
+      
+       Major documentation improvements (Neil, Peter)
+      
+     
+
+     
+      
+       Remove pg_encoding; not needed
+       anymore
+      
+     
+
+     
+      
+       Remove pg_id; not needed anymore
+      
+     
+
+     
+      
+       Remove initlocation; not needed
+       anymore
+      
+     
+
+     
+      
+       Auto-detect thread flags (no more manual testing) (Bruce)
+      
+     
+
+     
+      
+       Use Olson's public domain timezone library (Magnus)
+      
+     
+
+     
+      
+       With threading enabled, use thread flags on Unixware for
+       backend executables too (Bruce)
+      
+      
+       Unixware cannot mix threaded and nonthreaded object files in the
+       same executable, so everything must be compiled as threaded.
+      
+     
+
+     
+      
+       psql now uses a flex-generated
+       lexical analyzer to process command strings
+      
+     
+
+     
+      
+       Reimplement the linked list data structure used throughout the
+       backend (Neil)
+      
+      
+       This improves performance by allowing list append and length
+       operations to be more efficient.
+      
+     
+
+     
+      
+       Allow dynamically loaded modules to create their own server configuration
+       parameters (Thomas Hallgren)
+      
+     
+
+     
+      
+       New Brazilian version of FAQ (Euler Taveira de Oliveira)
+      
+     
+
+     
+      
+       Add French FAQ (Guillaume Lelarge)
+      
+     
+
+     
+      
+       New pgevent for Windows logging
+      
+     
+
+     
+      
+       Make libpq and ECPG build as proper shared libraries on OS X (Tom)
+      
+     
+
+    
+   
+
+
+   
+    Contrib Changes
+    
+
+     
+      
+       Overhaul of contrib/dblink (Joe)
+      
+     
+
+     
+      
+       contrib/dbmirror improvements (Steven Singer)
+      
+     
+
+     
+      
+       New contrib/xml2 (John Gray, Torchbox)
+      
+     
+
+     
+      
+       Updated contrib/mysql
+      
+     
+
+     
+      
+       New version of contrib/btree_gist (Teodor)
+      
+     
+
+     
+      
+       New contrib/trgm, trigram matching for
+       PostgreSQL (Teodor)
+      
+     
+
+     
+      
+       Many contrib/tsearch2 improvements (Teodor)
+      
+     
+
+     
+      
+       Add double metaphone to contrib/fuzzystrmatch (Andrew)
+      
+     
+
+     
+      
+       Allow contrib/pg_autovacuum to run as a Windows service (Dave Page)
+      
+     
+
+     
+      
+       Add functions to contrib/dbsize (Andreas Pflug)
+      
+     
+
+     
+      
+       Removed contrib/pg_logger: obsoleted by integrated logging
+       subprocess
+      
+     
+
+     
+      
+       Removed contrib/rserv: obsoleted by various separate projects
+      
+     
+
+    
+   
+
+  
diff --git a/doc/src/sgml/release-8.1.sgml b/doc/src/sgml/release-8.1.sgml
new file mode 100644 (file)
index 0000000..5785b1d
--- /dev/null
@@ -0,0 +1,4318 @@
+
+
+
+  Release 8.1.17
+
+  
+  Release date
+  2009-03-16
+  
+
+  
+   This release contains a variety of fixes from 8.1.16.
+   For information about new features in the 8.1 major release, see
+   .
+  
+
+  
+   Migration to Version 8.1.17
+
+   
+    A dump/restore is not required for those running 8.1.X.
+    However, if you are upgrading from a version earlier than 8.1.15,
+    see the release notes for 8.1.15.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Prevent error recursion crashes when encoding conversion fails (Tom)
+     
+
+     
+      This change extends fixes made in the last two minor releases for
+      related failure scenarios.  The previous fixes were narrowly tailored
+      for the original problem reports, but we have now recognized that
+      any error thrown by an encoding conversion function could
+      potentially lead to infinite recursion while trying to report the
+      error.  The solution therefore is to disable translation and encoding
+      conversion and report the plain-ASCII form of any error message,
+      if we find we have gotten into a recursive error reporting situation.
+      (CVE-2009-0922)
+     
+    
+
+    
+     
+      Disallow CREATE CONVERSION with the wrong encodings
+      for the specified conversion function (Heikki)
+     
+
+     
+      This prevents one possible scenario for encoding conversion failure.
+      The previous change is a backstop to guard against other kinds of
+      failures in the same area.
+     
+    
+
+    
+     
+      Fix core dump when to_char() is given format codes that
+      are inappropriate for the type of the data argument (Tom)
+     
+    
+
+    
+     
+      Fix decompilation of CASE WHEN with an implicit coercion
+      (Tom)
+     
+
+     
+      This mistake could lead to Assert failures in an Assert-enabled build,
+      or an unexpected CASE WHEN clause error message in other
+      cases, when trying to examine or dump a view.
+     
+    
+
+    
+     
+      Fix possible misassignment of the owner of a TOAST table's rowtype (Tom)
+     
+
+     
+      If CLUSTER or a rewriting variant of ALTER TABLE
+      were executed by someone other than the table owner, the
+      pg_type entry for the table's TOAST table would end up
+      marked as owned by that someone.  This caused no immediate problems,
+      since the permissions on the TOAST rowtype aren't examined by any
+      ordinary database operation.  However, it could lead to unexpected
+      failures if one later tried to drop the role that issued the command
+      (in 8.1 or 8.2), or owner of data type appears to be invalid
+      warnings from pg_dump after having done so (in 8.3).
+     
+    
+
+    
+     
+      Clean up PL/pgSQL error status variables fully at block exit
+      (Ashesh Vashi and Dave Page)
+     
+
+     
+      This is not a problem for PL/pgSQL itself, but the omission could cause
+      the PL/pgSQL Debugger to crash while examining the state of a function.
+     
+    
+
+    
+     
+      Add MUST (Mauritius Island Summer Time) to the default list
+      of known timezone abbreviations (Xavier Bugaud)
+     
+    
+
+   
+
+  
+
+  Release 8.1.16
+
+  
+  Release date
+  2009-02-02
+  
+
+  
+   This release contains a variety of fixes from 8.1.15.
+   For information about new features in the 8.1 major release, see
+   .
+  
+
+  
+   Migration to Version 8.1.16
+
+   
+    A dump/restore is not required for those running 8.1.X.
+    However, if you are upgrading from a version earlier than 8.1.15,
+    see the release notes for 8.1.15.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Fix crash in autovacuum (Alvaro)
+     
+
+     
+      The crash occurs only after vacuuming a whole database for
+      anti-transaction-wraparound purposes, which means that it occurs
+      infrequently and is hard to track down.
+     
+    
+
+    
+     
+      Improve handling of URLs in headline() function (Teodor)
+     
+    
+
+    
+     
+      Improve handling of overlength headlines in headline()
+      function (Teodor)
+     
+    
+
+    
+     
+      Prevent possible Assert failure or misconversion if an encoding
+      conversion is created with the wrong conversion function for the
+      specified pair of encodings (Tom, Heikki)
+     
+    
+
+    
+     
+      Avoid unnecessary locking of small tables in VACUUM
+      (Heikki)
+     
+    
+
+    
+     
+      Ensure that the contents of a holdable cursor don't depend on the
+      contents of TOAST tables (Tom)
+     
+
+     
+      Previously, large field values in a cursor result might be represented
+      as TOAST pointers, which would fail if the referenced table got dropped
+      before the cursor is read, or if the large value is deleted and then
+      vacuumed away.  This cannot happen with an ordinary cursor,
+      but it could with a cursor that is held past its creating transaction.
+     
+    
+
+    
+     
+      Fix uninitialized variables in contrib/tsearch2's
+      get_covers() function (Teodor)
+     
+    
+
+    
+     
+      Fix configure script to properly report failure when
+      unable to obtain linkage information for PL/Perl (Andrew)
+     
+    
+
+    
+     
+      Make all documentation reference pgsql-bugs and/or
+      pgsql-hackers as appropriate, instead of the
+      now-decommissioned pgsql-ports and pgsql-patches
+      mailing lists (Tom)
+     
+    
+
+    
+     
+      Update time zone data files to tzdata release 2009a (for
+      Kathmandu and historical DST corrections in Switzerland, Cuba)
+     
+    
+
+   
+
+  
+
+  Release 8.1.15
+
+  
+  Release date
+  2008-11-03
+  
+
+  
+   This release contains a variety of fixes from 8.1.14.
+   For information about new features in the 8.1 major release, see
+   .
+  
+
+  
+   Migration to Version 8.1.15
+
+   
+    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.  Also, if you were running a previous
+    8.1.X release, it is recommended to REINDEX all GiST
+    indexes after the upgrade.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Fix GiST index corruption due to marking the wrong index entry
+      dead after a deletion (Teodor)
+     
+
+     
+      This would result in index searches failing to find rows they
+      should have found.  Corrupted indexes can be fixed with
+      REINDEX.
+     
+    
+
+    
+     
+      Fix backend crash when the client encoding cannot represent a localized
+      error message (Tom)
+     
+
+     
+      We have addressed similar issues before, but it would still fail if
+      the character has no equivalent message itself couldn't
+      be converted.  The fix is to disable localization and send the plain
+      ASCII error message when we detect such a situation.
+     
+    
+
+    
+     
+      Fix possible crash when deeply nested functions are invoked from
+      a trigger (Tom)
+     
+    
+
+    
+     
+      Fix mis-expansion of rule queries when a sub-SELECT appears
+      in a function call in FROM,  a multi-row VALUES
+      list, or a RETURNING list (Tom)
+     
+
+     
+      The usual symptom of this problem is an unrecognized node type
+      error.
+     
+    
+
+    
+     
+      Ensure an error is reported when a newly-defined PL/pgSQL trigger
+      function is invoked as a normal function (Tom)
+     
+    
+
+    
+     
+      Prevent possible collision of relfilenode numbers
+      when moving a table to another tablespace with ALTER SET
+      TABLESPACE (Heikki)
+     
+
+     
+      The command tried to re-use the existing filename, instead of
+      picking one that is known unused in the destination directory.
+     
+    
+
+    
+     
+      Fix incorrect tsearch2 headline generation when single query
+      item matches first word of text (Sushant Sinha)
+     
+    
+
+    
+     
+      Fix improper display of fractional seconds in interval values when
+      using a non-ISO datestyle in an 
+      build (Ron Mayer)
+     
+    
+
+    
+     
+      Ensure SPI_getvalue and SPI_getbinval
+      behave correctly when the passed tuple and tuple descriptor have
+      different numbers of columns (Tom)
+     
+
+     
+      This situation is normal when a table has had columns added or removed,
+      but these two functions didn't handle it properly.
+      The only likely consequence is an incorrect error indication.
+     
+    
+
+    
+     
+      Fix ecpg's parsing of CREATE ROLE (Michael)
+     
+    
+
+    
+     
+      Fix recent breakage of pg_ctl restart (Tom)
+     
+    
+
+    
+     
+      Update time zone data files to tzdata release 2008i (for
+      DST law changes in Argentina, Brazil, Mauritius, Syria)
+     
+    
+
+   
+
+  
+
+  Release 8.1.14
+
+  
+  Release date
+  2008-09-22
+  
+
+  
+   This release contains a variety of fixes from 8.1.13.
+   For information about new features in the 8.1 major release, see
+   .
+  
+
+  
+   Migration to Version 8.1.14
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Widen local lock counters from 32 to 64 bits (Tom)
+     
+
+     
+      This responds to reports that the counters could overflow in
+      sufficiently long transactions, leading to unexpected lock is
+      already held errors.
+     
+    
+
+    
+     
+      Fix possible duplicate output of tuples during a GiST index scan (Teodor)
+     
+    
+
+    
+     
+      Add checks in executor startup to ensure that the tuples produced by an
+      INSERT or UPDATE will match the target table's
+      current rowtype (Tom)
+     
+
+     
+      ALTER COLUMN TYPE, followed by re-use of a previously
+      cached plan, could produce this type of situation.  The check protects
+      against data corruption and/or crashes that could ensue.
+     
+    
+
+    
+     
+      Fix AT TIME ZONE to first try to interpret its timezone
+      argument as a timezone abbreviation, and only try it as a full timezone
+      name if that fails, rather than the other way around as formerly (Tom)
+     
+
+     
+      The timestamp input functions have always resolved ambiguous zone names
+      in this order.  Making AT TIME ZONE do so as well improves
+      consistency, and fixes a compatibility bug introduced in 8.1:
+      in ambiguous cases we now behave the same as 8.0 and before did,
+      since in the older versions AT TIME ZONE accepted
+      only abbreviations.
+     
+    
+
+    
+     
+      Fix datetime input functions to correctly detect integer overflow when
+      running on a 64-bit platform (Tom)
+     
+    
+
+    
+     
+      Improve performance of writing very long log messages to syslog (Tom)
+     
+    
+
+    
+     
+      Fix bug in backwards scanning of a cursor on a SELECT DISTINCT
+      ON query (Tom)
+     
+    
+
+    
+     
+      Fix planner bug with nested sub-select expressions (Tom)
+     
+
+     
+      If the outer sub-select has no direct dependency on the parent query,
+      but the inner one does, the outer value might not get recalculated
+      for new parent query rows.
+     
+    
+
+    
+     
+      Fix planner to estimate that GROUP BY expressions yielding
+      boolean results always result in two groups, regardless of the
+      expressions' contents (Tom)
+     
+
+     
+      This is very substantially more accurate than the regular GROUP
+      BY estimate for certain boolean tests like col
+      IS NULL.
+     
+    
+
+    
+     
+      Fix PL/PgSQL to not fail when a FOR loop's target variable
+      is a record containing composite-type fields (Tom)
+     
+    
+
+    
+     
+      Fix PL/Tcl to behave correctly with Tcl 8.5, and to be more careful
+      about the encoding of data sent to or from Tcl (Tom)
+     
+    
+
+    
+     
+      Fix PL/Python to work with Python 2.5
+     
+
+     
+      This is a back-port of fixes made during the 8.2 development cycle.
+     
+    
+
+    
+     
+      Improve pg_dump and pg_restore's
+      error reporting after failure to send a SQL command (Tom)
+     
+    
+
+    
+     
+      Fix pg_ctl to properly preserve postmaster
+      command-line arguments across a restart (Bruce)
+     
+    
+
+    
+     
+      Update time zone data files to tzdata release 2008f (for
+      DST law changes in Argentina, Bahamas, Brazil, Mauritius, Morocco,
+      Pakistan, Palestine, and Paraguay)
+     
+    
+
+   
+
+  
+
+  Release 8.1.13
+
+  
+  Release date
+  2008-06-12
+  
+
+  
+   This release contains one serious and one minor bug fix over 8.1.12.
+   For information about new features in the 8.1 major release, see
+   .
+  
+
+  
+   Migration to Version 8.1.13
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Make pg_get_ruledef() parenthesize negative constants (Tom)
+     
+
+     
+      Before this fix, a negative constant in a view or rule might be dumped
+      as, say, -42::integer, which is subtly incorrect: it should
+      be (-42)::integer due to operator precedence rules.
+      Usually this would make little difference, but it could interact with
+      another recent patch to cause
+      PostgreSQL to reject what had been a valid
+      SELECT DISTINCT view query.  Since this could result in
+      pg_dump output failing to reload, it is being treated
+      as a high-priority fix.  The only released versions in which dump
+      output is actually incorrect are 8.3.1 and 8.2.7.
+     
+    
+
+    
+     
+      Make ALTER AGGREGATE ... OWNER TO update
+      pg_shdepend (Tom)
+     
+
+     
+      This oversight could lead to problems if the aggregate was later
+      involved in a DROP OWNED or REASSIGN OWNED
+      operation.
+     
+    
+
+   
+
+  
+
+  Release 8.1.12
+
+  
+  Release date
+  never released
+  
+
+  
+   This release contains a variety of fixes from 8.1.11.
+   For information about new features in the 8.1 major release, see
+   .
+  
+
+  
+   Migration to Version 8.1.12
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Fix 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)
+     
+
+     
+      Previous versions neglected to check this requirement at all.
+     
+    
+
+    
+     
+      Fix possible CREATE TABLE failure when inheriting the
+      same constraint from multiple parent relations that
+      inherited that constraint from a common ancestor (Tom)
+     
+    
+
+    
+     
+      Fix conversions between ISO-8859-5 and other encodings to handle
+      Cyrillic Yo characters (e and E with
+      two dots) (Sergey Burladyan)
+     
+    
+
+    
+     
+      Fix a few datatype input functions
+      that were allowing unused bytes in their results to contain
+      uninitialized, unpredictable values (Tom)
+     
+
+     
+      This could lead to failures in which two apparently identical literal
+      values were not seen as equal, resulting in the parser complaining
+      about unmatched ORDER BY and DISTINCT
+      expressions.
+     
+    
+
+    
+     
+      Fix a corner case in regular-expression substring matching
+      (substring(string from
+      pattern)) (Tom)
+     
+
+     
+      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
+      substring('foo' from 'foo(bar)?').
+      This should return NULL, since (bar) isn't matched, but
+      it was mistakenly returning the whole-pattern match instead (ie,
+      foo).
+     
+    
+
+    
+     
+      Update time zone data files to tzdata release 2008c (for
+      DST law changes in Morocco, Iraq, Choibalsan, Pakistan, Syria, Cuba,
+      Argentina/San_Luis, and Chile)
+     
+    
+
+    
+     
+      Fix incorrect result from ecpg's
+      PGTYPEStimestamp_sub() function (Michael)
+     
+    
+
+    
+     
+      Fix core dump in contrib/xml2's
+      xpath_table() function when the input query returns a
+      NULL value (Tom)
+     
+    
+
+    
+     
+      Fix contrib/xml2's makefile to not override
+      CFLAGS (Tom)
+     
+    
+
+    
+     
+      Fix DatumGetBool macro to not fail with gcc
+      4.3 (Tom)
+     
+
+     
+      This problem affects 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.
+     
+    
+
+    
+     
+      Fix longstanding LISTEN/NOTIFY
+      race condition (Tom)
+     
+
+     
+      In rare cases a session that had just executed a
+      LISTEN might not get a notification, even though
+      one would be expected because the concurrent transaction executing
+      NOTIFY was observed to commit later.
+     
+
+     
+      A side effect of the fix is that a transaction that has executed
+      a not-yet-committed LISTEN command will not see any
+      row in pg_listener for the 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.
+     
+    
+
+    
+     
+      Disallow LISTEN and UNLISTEN within a
+      prepared transaction (Tom)
+     
+
+     
+      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 UNLISTEN remained uncommitted.
+     
+    
+
+    
+     
+      Fix rare crash when an error occurs during a query using a hash index
+      (Heikki)
+     
+    
+
+    
+     
+      Fix input of datetime values for February 29 in years BC (Tom)
+     
+
+     
+      The former coding was mistaken about which years were leap years.
+     
+    
+
+    
+     
+      Fix unrecognized node type error in some variants of
+      ALTER OWNER (Tom)
+     
+    
+
+    
+     
+      Fix pg_ctl to correctly extract the postmaster's port
+      number from command-line options (Itagaki Takahiro, Tom)
+     
+
+     
+      Previously, pg_ctl start -w could try to contact the
+      postmaster on the wrong port, leading to bogus reports of startup
+      failure.
+     
+    
+
+    
+     
+      Use 
+      in recent gcc versions (Tom)
+     
+
+     
+      This is known to be necessary when building PostgreSQL
+      with gcc 4.3 or later.
+     
+    
+
+    
+     
+      Fix display of constant expressions in ORDER BY
+      and GROUP BY (Tom)
+     
+
+     
+      An explictly casted constant would be shown incorrectly.  This could
+      for example lead to corruption of a view definition during
+      dump and reload.
+     
+    
+
+    
+     
+      Fix libpq to handle NOTICE messages correctly
+      during COPY OUT (Tom)
+     
+
+     
+      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.
+     
+    
+
+   
+
+  
+
+  Release 8.1.11
+
+  
+  Release date
+  2008-01-07
+  
+
+  
+   This release contains a variety of fixes from 8.1.10,
+   including fixes for significant security issues.
+   For information about new features in the 8.1 major release, see
+   .
+  
+
+  
+   This is the last 8.1.X release for which the PostgreSQL
+   community will produce binary packages for Windows.
+   Windows users are encouraged to move to 8.2.X or later,
+   since there are Windows-specific fixes in 8.2.X that
+   are impractical to back-port.  8.1.X will continue to
+   be supported on other platforms.
+  
+
+  
+   Migration to Version 8.1.11
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Prevent functions in indexes from executing with the privileges of
+      the user running VACUUM, ANALYZE, etc (Tom)
+     
+
+     
+      Functions used in index expressions and partial-index
+      predicates are evaluated whenever a new table entry is made.  It has
+      long been understood that this poses a risk of trojan-horse code
+      execution if one modifies a table owned by an untrustworthy user.
+      (Note that triggers, defaults, check constraints, etc. pose the
+      same type of risk.)  But functions in indexes pose extra danger
+      because they will be executed by routine maintenance operations
+      such as VACUUM FULL, which are commonly performed
+      automatically under a superuser account.  For example, a nefarious user
+      can execute code with superuser privileges by setting up a
+      trojan-horse index definition and waiting for the next routine vacuum.
+      The fix arranges for standard maintenance operations
+      (including VACUUM, ANALYZE, REINDEX,
+      and CLUSTER) to execute as the table owner rather than
+      the calling user, using the same privilege-switching mechanism already
+      used for SECURITY DEFINER functions.  To prevent bypassing
+      this security measure, execution of SET SESSION
+      AUTHORIZATION and SET ROLE is now forbidden within a
+      SECURITY DEFINER context.  (CVE-2007-6600)
+     
+    
+
+    
+     
+      Repair assorted bugs in the regular-expression package (Tom, Will Drewry)
+     
+
+     
+      Suitably crafted regular-expression patterns could cause crashes,
+      infinite or near-infinite looping, and/or massive memory consumption,
+      all of which pose denial-of-service hazards for applications that
+      accept regex search patterns from untrustworthy sources.
+      (CVE-2007-4769, CVE-2007-4772, CVE-2007-6067)
+     
+    
+
+    
+     
+      Require non-superusers who use /contrib/dblink to use only
+      password authentication, as a security measure (Joe)
+     
+
+     
+      The fix that appeared for this in 8.1.10 was incomplete, as it plugged
+      the hole for only some dblink functions.  (CVE-2007-6601,
+      CVE-2007-3278)
+     
+    
+
+    
+     
+      Update time zone data files to tzdata release 2007k
+      (in particular, recent Argentina changes) (Tom)
+     
+    
+
+    
+     
+      Improve planner's handling of LIKE/regex estimation in non-C locales
+      (Tom)
+     
+    
+
+    
+     
+      Fix planner failure in some cases of WHERE false AND var IN
+      (SELECT ...) (Tom)
+     
+    
+
+    
+     
+      Preserve the tablespace of indexes that are
+      rebuilt by ALTER TABLE ... ALTER COLUMN TYPE (Tom)
+     
+    
+
+    
+     
+      Make archive recovery always start a new WAL timeline, rather than only
+      when a recovery stop time was used (Simon)
+     
+
+     
+      This avoids a corner-case risk of trying to overwrite an existing
+      archived copy of the last WAL segment, and seems simpler and cleaner
+      than the original definition.
+     
+    
+
+    
+     
+      Make VACUUM not use all of maintenance_work_mem
+      when the table is too small for it to be useful (Alvaro)
+     
+    
+
+    
+     
+      Fix potential crash in translate() when using a multibyte
+      database encoding (Tom)
+     
+    
+
+    
+     
+      Fix overflow in extract(epoch from interval) for intervals
+      exceeding 68 years (Tom)
+     
+    
+
+    
+     
+      Fix PL/Perl to not fail when a UTF-8 regular expression is used
+      in a trusted function (Andrew)
+     
+    
+
+    
+     
+      Fix PL/Perl to cope when platform's Perl defines type bool
+      as int rather than char (Tom)
+     
+
+     
+      While this could theoretically happen anywhere, no standard build of
+      Perl did things this way ... until Mac OS X 10.5.
+     
+    
+
+    
+     
+      Fix PL/Python to not crash on long exception messages (Alvaro)
+     
+    
+
+    
+     
+      Fix pg_dump to correctly handle inheritance child tables
+      that have default expressions different from their parent's (Tom)
+     
+    
+
+    
+     
+      Fix libpq crash when PGPASSFILE refers
+      to a file that is not a plain file (Martin Pitt)
+     
+    
+
+    
+     
+      ecpg parser fixes (Michael)
+     
+    
+
+    
+     
+      Make contrib/pgcrypto defend against
+      OpenSSL libraries that fail on keys longer than 128
+      bits; which is the case at least on some Solaris versions (Marko Kreen)
+     
+    
+
+    
+     
+      Make contrib/tablefunc's crosstab() handle
+      NULL rowid as a category in its own right, rather than crashing (Joe)
+     
+    
+
+    
+     
+      Fix tsvector and tsquery output routines to
+      escape backslashes correctly (Teodor, Bruce)
+     
+    
+
+    
+     
+      Fix crash of to_tsvector() on huge input strings (Teodor)
+     
+    
+
+    
+     
+      Require a specific version of Autoconf to be used
+      when re-generating the configure script (Peter)
+     
+
+     
+      This affects developers and packagers only.  The change was made
+      to prevent accidental use of untested combinations of
+      Autoconf and PostgreSQL versions.
+      You can remove the version check if you really want to use a
+      different Autoconf version, but it's
+      your responsibility whether the result works or not.
+     
+    
+
+   
+
+  
+
+  Release 8.1.10
+
+  
+  Release date
+  2007-09-17
+  
+
+  
+   This release contains a variety of fixes from 8.1.9.
+   For information about new features in the 8.1 major release, see
+   .
+  
+
+  
+   Migration to Version 8.1.10
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Prevent index corruption when a transaction inserts rows and
+      then aborts close to the end of a concurrent VACUUM
+      on the same table (Tom)
+     
+    
+
+    
+     
+      Make CREATE DOMAIN ... DEFAULT NULL work properly (Tom)
+     
+    
+
+    
+     
+      Allow the interval data type to accept input consisting only of
+      milliseconds or microseconds (Neil)
+     
+    
+
+    
+     
+      Speed up rtree index insertion (Teodor)
+     
+    
+
+    
+     
+      Fix excessive logging of SSL error messages (Tom)
+     
+    
+
+    
+     
+      Fix logging so that log messages are never interleaved when using
+      the syslogger process (Andrew)
+     
+    
+
+    
+     
+      Fix crash when log_min_error_statement logging runs out
+      of memory (Tom)
+     
+    
+
+    
+     
+      Fix incorrect handling of some foreign-key corner cases (Tom)
+     
+    
+
+    
+     
+      Prevent REINDEX and CLUSTER from failing
+      due to attempting to process temporary tables of other sessions (Alvaro)
+     
+    
+
+    
+     
+      Update the time zone database rules, particularly New Zealand's upcoming changes (Tom)
+     
+    
+
+    
+     
+      Windows socket improvements (Magnus)
+     
+    
+
+    
+     
+      Suppress timezone name (%Z) in log timestamps on Windows
+      because of possible encoding mismatches (Tom)
+     
+    
+
+    
+     
+      Require non-superusers who use /contrib/dblink to use only
+      password authentication, as a security measure (Joe)
+     
+    
+
+   
+
+  
+
+  Release 8.1.9
+
+  
+  Release date
+  2007-04-23
+  
+
+  
+   This release contains a variety of fixes from 8.1.8,
+   including a security fix.
+   For information about new features in the 8.1 major release, see
+   .
+  
+
+  
+   Migration to Version 8.1.9
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+    
+     Support explicit placement of the temporary-table schema within
+     search_path, and disable searching it for functions
+     and operators (Tom)
+    
+    
+     This is needed to allow a security-definer function to set a
+     truly secure value of search_path.  Without it,
+     an unprivileged SQL user can use temporary objects to execute code
+     with the privileges of the security-definer function (CVE-2007-2138).
+     See CREATE FUNCTION for more information.
+    
+    
+
+    
+    
+     /contrib/tsearch2 crash fixes (Teodor)
+    
+    
+
+    
+    
+     Require COMMIT PREPARED to be executed in the same
+     database as the transaction was prepared in (Heikki)
+    
+    
+
+    
+    
+     Fix potential-data-corruption bug in how VACUUM FULL handles
+     UPDATE chains (Tom, Pavan Deolasee)
+    
+    
+
+    
+    
+     Planner fixes, including improving outer join and bitmap scan
+     selection logic (Tom)
+    
+    
+
+    
+    
+     Fix PANIC during enlargement of a hash index (bug introduced in 8.1.6)
+     (Tom)
+    
+    
+
+    
+    
+     Fix POSIX-style timezone specs to follow new USA DST rules (Tom)
+    
+    
+
+   
+
+  
+
+  Release 8.1.8
+
+  
+  Release date
+  2007-02-07
+  
+
+  
+   This release contains one fix from 8.1.7.
+   For information about new features in the 8.1 major release, see
+   .
+  
+
+  
+   Migration to Version 8.1.8
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+    
+     Remove overly-restrictive check for type length in constraints and
+     functional indexes(Tom)
+    
+    
+
+   
+
+  
+
+  Release 8.1.7
+
+  
+  Release date
+  2007-02-05
+  
+
+  
+   This release contains a variety of fixes from 8.1.6, including
+   a security fix.
+   For information about new features in the 8.1 major release, see
+   .
+  
+
+  
+   Migration to Version 8.1.7
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+    
+     Remove security vulnerabilities that allowed connected users
+     to read backend memory (Tom)
+    
+    
+     The vulnerabilities involve suppressing the normal check that a SQL
+     function returns the data type it's declared to, and changing the
+     data type of a table column (CVE-2007-0555, CVE-2007-0556).  These
+     errors 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.
+    
+    
+
+    
+    
+     Fix rare bug wherein btree index page splits could fail
+     due to choosing an infeasible split point (Heikki Linnakangas)
+    
+    
+
+    
+    
+     Improve VACUUM performance for databases with many tables (Tom)
+    
+    
+
+    
+    
+     Fix autovacuum to avoid leaving non-permanent transaction IDs in
+     non-connectable databases (Alvaro)
+    
+
+    
+     This bug affects the 8.1 branch only.
+    
+    
+
+    
+    
+     Fix for rare Assert() crash triggered by UNION (Tom)
+    
+    
+
+    
+    
+     Tighten security of multi-byte character processing for UTF8 sequences
+     over three bytes long (Tom)
+    
+    
+
+    
+    
+     Fix bogus permission denied failures occurring on Windows
+     due to attempts to fsync already-deleted files (Magnus, Tom)
+    
+    
+
+    
+    
+     Fix possible crashes when an already-in-use PL/pgSQL function is
+     updated (Tom)
+    
+    
+
+   
+
+  
+
+  Release 8.1.6
+
+  
+  Release date
+  2007-01-08
+  
+
+  
+   This release contains a variety of fixes from 8.1.5.
+   For information about new features in the 8.1 major release, see
+   .
+  
+
+  
+   Migration to Version 8.1.6
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Improve handling of getaddrinfo() on AIX (Tom)
+     
+
+     
+      This fixes a problem with starting the statistics collector,
+      among other things.
+     
+    
+
+    
+     
+      Fix pg_restore to handle a tar-format backup
+      that contains large objects (blobs) with comments (Tom)
+     
+    
+
+     
+      
+       Fix failed to re-find parent key errors in
+       VACUUM (Tom)
+      
+     
+
+     
+      
+       Clean out pg_internal.init cache files during server
+       restart (Simon)
+      
+
+      
+       This avoids a hazard that the cache files might contain stale
+       data after PITR recovery.
+      
+     
+
+     
+      
+       Fix race condition for truncation of a large relation across a
+       gigabyte boundary by VACUUM (Tom)
+      
+     
+
+     
+      
+       Fix bug causing needless deadlock errors on row-level locks (Tom)
+      
+     
+
+     
+      
+       Fix bugs affecting multi-gigabyte hash indexes (Tom)
+      
+     
+
+    
+     
+      Fix possible deadlock in Windows signal handling (Teodor)
+     
+    
+
+    
+     
+      Fix error when constructing an ARRAY[] made up of multiple
+      empty elements (Tom)
+     
+    
+
+    
+     
+      Fix ecpg memory leak during connection (Michael)
+     
+    
+
+    
+     
+      Fix for Darwin (OS X) compilation (Tom)
+     
+    
+
+    
+     
+      to_number() and to_char(numeric)
+      are now STABLE, not IMMUTABLE, for
+      new initdb installs (Tom)
+     
+
+     
+      This is because lc_numeric can potentially
+      change the output of these functions.
+     
+    
+
+    
+     
+      Improve index usage of regular expressions that use parentheses (Tom)
+     
+
+     
+      This improves psql \d performance also.
+     
+    
+
+    
+     
+      Update timezone database
+     
+
+     
+      This affects Australian and Canadian daylight-savings rules in
+      particular.
+     
+    
+
+   
+
+  
+
+  Release 8.1.5
+
+  
+  Release date
+  2006-10-16
+  
+
+  
+   This release contains a variety of fixes from 8.1.4.
+   For information about new features in the 8.1 major release, see
+   .
+  
+
+  
+   Migration to Version 8.1.5
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+
+Disallow aggregate functions in UPDATE
+commands, except within sub-SELECTs (Tom)
+The behavior of such an aggregate was unpredictable, and in 8.1.X
+could cause a crash, so it has been disabled.  The SQL standard does not allow
+this either.
+Fix core dump when an untyped literal is taken as
+ANYARRAY
+Fix core dump in duration logging for extended query protocol
+when a COMMIT or ROLLBACK is
+executed
+Fix mishandling of AFTER triggers when query contains a SQL
+function returning multiple rows (Tom)
+Fix ALTER TABLE ... TYPE to recheck
+NOT NULL for USING clause (Tom)
+Fix string_to_array() to handle overlapping
+ matches for the separator string
+For example, string_to_array('123xx456xxx789', 'xx').
+
+Fix to_timestamp() for
+AM/PM formats (Bruce)
+Fix autovacuum's calculation that decides whether
ANALYZE is needed (Alvaro)
+Fix corner cases in pattern matching for
psql's \d commands
+Fix index-corrupting bugs in /contrib/ltree
+ (Teodor)
+Numerous robustness fixes in ecpg (Joachim
+Wieland)
+Fix backslash escaping in /contrib/dbmirror
+Minor fixes in /contrib/dblink and /contrib/tsearch2
+
+Efficiency improvements in hash tables and bitmap index scans
+(Tom)
+Fix instability of statistics collection on Windows (Tom, Andrew)
+Fix statement_timeout to use the proper
+units on Win32 (Bruce)
+In previous Win32 8.1.X versions, the delay was off by a factor of
+100.
+Fixes for MSVC and Borland C++
+compilers (Hiroshi Saito)
+Fixes for AIX and
+Intel compilers (Tom)
+Fix rare bug in continuous archiving (Tom)
+
+
+  
+
+  Release 8.1.4
+
+  
+  Release date
+  2006-05-23
+  
+
+  
+   This release contains a variety of fixes from 8.1.3,
+   including patches for extremely serious security issues.
+   For information about new features in the 8.1 major release, see
+   .
+  
+
+  
+   Migration to Version 8.1.4
+
+   
+    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.
+   
+
+   
+    Full security against the SQL-injection attacks described in
+    CVE-2006-2313 and CVE-2006-2314 might require changes in application
+    code.  If you have applications that embed untrustworthy strings
+    into SQL commands, you should examine them as soon as possible to
+    ensure that they are using recommended escaping techniques.  In
+    most cases, applications should be using subroutines provided by
+    libraries or drivers (such as libpq's
+    PQescapeStringConn()) to perform string escaping,
+    rather than relying on ad hoc code to do it.
+   
+  
+
+  
+   Changes
+
+
+Change the server to reject invalidly-encoded multibyte
+characters in all cases (Tatsuo, Tom)
+While PostgreSQL has been moving in this direction for
+some time, the checks are now applied uniformly to all encodings and all
+textual input, and are now always errors not merely warnings.  This change
+defends against SQL-injection attacks of the type described in CVE-2006-2313.
+
+
+Reject unsafe uses of \' in string literals
+As a server-side defense against SQL-injection attacks of the type
+described in CVE-2006-2314, the server now only accepts '' and not
+\' as a representation of ASCII single quote in SQL string
+literals.  By default, \' is rejected only when
+client_encoding is set to a client-only encoding (SJIS, BIG5, GBK,
+GB18030, or UHC), which is the scenario in which SQL injection is possible.
+A new configuration parameter backslash_quote is available to
+adjust this behavior when needed.  Note that full security against
+CVE-2006-2314 might require client-side changes; the purpose of
+backslash_quote is in part to make it obvious that insecure
+clients are insecure.
+
+
+Modify libpq's string-escaping routines to be
+aware of encoding considerations and
+standard_conforming_strings
+This fixes libpq-using applications for the security
+issues described in CVE-2006-2313 and CVE-2006-2314, and also future-proofs
+them against the planned changeover to SQL-standard string literal syntax.
+Applications that use multiple PostgreSQL connections
+concurrently should migrate to PQescapeStringConn() and
+PQescapeByteaConn() to ensure that escaping is done correctly
+for the settings in use in each database connection.  Applications that
+do string escaping by hand should be modified to rely on library
+routines instead.
+
+
+Fix weak key selection in pgcrypto (Marko Kreen)
+Errors in fortuna PRNG reseeding logic could cause a predictable
+session key to be selected by pgp_sym_encrypt() in some cases.
+This only affects non-OpenSSL-using builds.
+
+
+Fix some incorrect encoding conversion functions
+win1251_to_iso, win866_to_iso,
+euc_tw_to_big5, euc_tw_to_mic,
+mic_to_euc_tw were all broken to varying
+extents.
+
+
+Clean up stray remaining uses of \' in strings
+(Bruce, Jan)
+
+Make autovacuum visible in pg_stat_activity
+(Alvaro)
+
+Disable full_page_writes (Tom)
+In certain cases, having full_page_writes off would cause
+crash recovery to fail.  A proper fix will appear in 8.2; for now it's just
+disabled.
+
+
+Various planner fixes, particularly for bitmap index scans and
+MIN/MAX optimization (Tom)
+
+Fix incorrect optimization in merge join (Tom)
+Outer joins could sometimes emit multiple copies of unmatched rows.
+
+
+Fix crash from using and modifying a plpgsql function in the
+same transaction
+
+Fix WAL replay for case where a B-Tree index has been
+truncated
+
+Fix SIMILAR TO for patterns involving
+| (Tom)
+
+Fix SELECT INTO and CREATE TABLE AS to
+create tables in the default tablespace, not the base directory (Kris
+Jurka)
+
+Fix server to use custom DH SSL parameters correctly (Michael
+Fuhr)
+
+Improve qsort performance (Dann Corbit)
+Currently this code is only used on Solaris.
+
+
+Fix for OS/X Bonjour on x86 systems (Ashley Clark)
+
+Fix various minor memory leaks
+
+Fix problem with password prompting on some Win32 systems
+(Robert Kinberg)
+
+Improve pg_dump's handling of default values
+for domains
+
+Fix pg_dumpall to handle identically-named
+users and groups reasonably (only possible when dumping from a pre-8.1 server)
+(Tom)
+The user and group will be merged into a single role with
+LOGIN permission.  Formerly the merged role wouldn't have
+LOGIN permission, making it unusable as a user.
+
+
+Fix pg_restore -n to work as
+documented (Tom)
+
+
+  
+
+  Release 8.1.3
+
+  
+  Release date
+  2006-02-14
+  
+
+  
+   This release contains a variety of fixes from 8.1.2,
+   including one very serious security issue.
+   For information about new features in the 8.1 major release, see
+   .
+  
+
+  
+   Migration to Version 8.1.3
+
+   
+    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.
+   
+  
+
+  
+   Changes
+
+
+
+Fix bug that allowed any logged-in user to SET
+ROLE to any other database user id (CVE-2006-0553)
+Due to inadequate validity checking, a user could exploit the special
+case that SET ROLE normally uses to restore the previous role
+setting after an error.  This allowed ordinary users to acquire superuser
+status, for example.
+The escalation-of-privilege risk exists only in 8.1.0-8.1.2.
+However, in all releases back to 7.3 there is a related bug in SET
+SESSION AUTHORIZATION that allows unprivileged users to crash the server,
+if it has been compiled with Asserts enabled (which is not the default).
+Thanks to Akio Ishida for reporting this problem.
+
+
+Fix bug with row visibility logic in self-inserted
+rows (Tom)
+Under rare circumstances a row inserted by the current command
+could be seen as already valid, when it should not be.  Repairs bug
+created in 8.0.4, 7.4.9, and 7.3.11 releases.
+
+
+Fix race condition that could lead to file already
+exists errors during pg_clog and pg_subtrans file creation
+(Tom)
+
+Fix cases that could lead to crashes if a cache-invalidation
+message arrives at just the wrong time (Tom)
+
+Properly check DOMAIN constraints for
+UNKNOWN parameters in prepared statements
+(Neil)
+
+Ensure ALTER COLUMN TYPE will process
+FOREIGN KEY, UNIQUE, and PRIMARY KEY
+constraints in the proper order (Nakano Yoshihisa)
+
+Fixes to allow restoring dumps that have cross-schema
+references to custom operators or operator classes (Tom)
+
+Allow pg_restore to continue properly after a
+COPY failure; formerly it tried to treat the remaining
+COPY data as SQL commands (Stephen Frost)
+
+Fix pg_ctl unregister crash
+when the  data directory is not specified (Magnus)
+
+Fix libpq PQprint HTML tags
+(Christoph Zwerschke)
+
+Fix ecpg crash on AMD64 and PPC
+(Neil)
+
+Allow SETOF and %TYPE to be used
+together in function result type declarations
+
+Recover properly if error occurs during argument passing
+in PL/python (Neil)
+
+Fix memory leak in plperl_return_next
+(Neil)
+
+Fix PL/perl's handling of locales on
+Win32 to match the backend (Andrew)
+
+Various optimizer fixes (Tom)
+
+Fix crash when log_min_messages is set to
+DEBUG3 or above in postgresql.conf on Win32
+(Bruce)
+
+Fix pgxs -L library path
+specification for Win32, Cygwin, OS X, AIX (Bruce)
+
+Check that SID is enabled while checking for Win32 admin
+privileges (Magnus)
+
+Properly reject out-of-range date inputs (Kris
+Jurka)
+
+Portability fix for testing presence of finite
+and isinf during configure (Tom)
+
+Improve speed of COPY IN via libpq, by
+avoiding a kernel call per data line (Alon Goldshuv)
+
+Improve speed of /contrib/tsearch2 index
+creation (Tom)
+
+
+
+  
+
+  Release 8.1.2
+
+  
+  Release date
+  2006-01-09
+  
+
+  
+   This release contains a variety of fixes from 8.1.1.
+   For information about new features in the 8.1 major release, see
+   .
+  
+
+  
+   Migration to Version 8.1.2
+
+   
+    A dump/restore is not required for those running 8.1.X.
+    However, you might need to REINDEX indexes on textual
+    columns after updating, if you are affected by the locale or
+    plperl issues described below.
+   
+  
+
+  
+   Changes
+
+
+
+Fix Windows code so that postmaster will continue rather
+than exit if there is no more room in ShmemBackendArray (Magnus)
+The previous behavior could lead to a denial-of-service situation if too
+many connection requests arrive close together.  This applies
+only to the Windows port.
+
+Fix bug introduced in 8.0 that could allow ReadBuffer
+to return an already-used page as new, potentially causing loss of
+recently-committed data (Tom)
+
+Fix for protocol-level Describe messages issued
+outside a transaction or in a failed transaction (Tom)
+
+Fix character string comparison for locales that consider
+different character combinations as equal, such as Hungarian (Tom)
+This might require REINDEX to fix existing indexes on
+textual columns.
+
+Set locale environment variables during postmaster startup
+to ensure that plperl won't change the locale later
+This fixes a problem that occurred if the postmaster was
+started with environment variables specifying a different locale than what
+initdb had been told.  Under these conditions, any use of
+plperl was likely to lead to corrupt indexes.  You might need
+REINDEX to fix existing indexes on
+textual columns if this has happened to you.
+
+Allow more flexible relocation of installation
+directories (Tom)
+Previous releases supported relocation only if all installation
+directory paths were the same except for the last component.
+
+Prevent crashes caused by the use of
+ISO-8859-5 and ISO-8859-9 encodings
+(Tatsuo)
+
+Fix longstanding bug in strpos() and regular expression
+handling in certain rarely used Asian multi-byte character sets (Tatsuo)
+
+
+Fix bug where COPY CSV mode considered any
+\. to terminate the copy data The new code
+requires \. to appear alone on a line, as per
+documentation.
+
+Make COPY CSV mode quote a literal data value of
+\. to ensure it cannot be interpreted as the
+end-of-data marker (Bruce)
+
+Various fixes for functions returning RECORDs
+(Tom) 
+
+Fix processing of postgresql.conf so a
+final line with no newline is processed properly (Tom)
+
+
+Fix bug in /contrib/pgcrypto gen_salt,
+which caused it not to use all available salt space for MD5 and
+XDES algorithms (Marko Kreen, Solar Designer)
+Salts for Blowfish and standard DES are unaffected.
+
+Fix autovacuum crash when processing expression indexes
+
+
+Fix /contrib/dblink to throw an error,
+rather than crashing, when the number of columns specified is different from
+what's actually returned by the query (Joe)
+
+
+
+  
+
+  Release 8.1.1
+
+  
+  Release date
+  2005-12-12
+  
+
+  
+   This release contains a variety of fixes from 8.1.0.
+   For information about new features in the 8.1 major release, see
+   .
+  
+
+  
+   Migration to Version 8.1.1
+
+   
+    A dump/restore is not required for those running 8.1.X.
+   
+  
+
+  
+   Changes
+
+
+Fix incorrect optimizations of outer-join conditions
+(Tom)
+
+Fix problems with wrong reported column names in cases
+involving sub-selects flattened by the optimizer (Tom)
+
+Fix update failures in scenarios involving CHECK constraints,
+toasted columns, and indexes (Tom)
+
+Fix bgwriter problems after recovering from errors
+(Tom)
+
+The background writer was found to leak buffer pins after write errors.
+While not fatal in itself, this might lead to mysterious blockages of
+later VACUUM commands.
+
+
+
+Prevent failure if client sends Bind protocol message
+when current transaction is already aborted
+
+/contrib/tsearch2 and /contrib/ltree
+fixes (Teodor)
+
+Fix problems with translated error messages in
+languages that require word reordering, such as Turkish; also problems with
+unexpected truncation of output strings and wrong display of the smallest
+possible bigint value (Andrew, Tom)
+
+These problems only appeared on platforms that were using our
+port/snprintf.c code, which includes BSD variants if
+--enable-nls was given, and perhaps others.  In addition,
+a different form of the translated-error-message problem could appear
+on Windows depending on which version of libintl was used.
+
+
+Re-allow AM/PM, HH,
+HH12, and D format specifiers for
+to_char(time) and to_char(interval).
+(to_char(interval) should probably use
+HH24.) (Bruce)
+
+AIX, HPUX, and MSVC compile fixes (Tom, Hiroshi
+Saito)
+
+Optimizer improvements (Tom)
+
+Retry file reads and writes after Windows
+NO_SYSTEM_RESOURCES error (Qingqing Zhou)
+
+Prevent autovacuum from crashing during
+ANALYZE of expression index (Alvaro)
+
+Fix problems with ON COMMIT DELETE ROWS temp
+tables
+
+Fix problems when a trigger alters the output of a SELECT
+DISTINCT query
+
+Add 8.1.0 release note item on how to migrate invalid
+UTF-8 byte sequences (Paul Lindner)
+
+
+  
+
+  Release 8.1
+
+  
+   Release date
+   2005-11-08
+  
+
+  
+   Overview
+
+   
+    Major changes in this release:
+   
+
+   
+
+    
+     
+      Improve concurrent access to the shared buffer cache (Tom)
+     
+
+     
+      
+       Access to the shared buffer cache was identified as a
+       significant scalability problem, particularly on multi-CPU
+       systems. In this release, the way that locking is done in the
+       buffer manager has been overhauled to reduce lock contention
+       and improve scalability. The buffer manager has also been
+       changed to use a clock sweep replacement
+       policy.
+      
+     
+    
+
+    
+     
+      Allow index scans to use an intermediate in-memory bitmap (Tom)
+     
+
+     
+      
+       In previous releases, only a single index could be used to do
+       lookups on a table. With this feature, if a query has
+       WHERE tab.col1 = 4 and tab.col2 = 9, and there is
+       no multicolumn index on col1 and col2,
+       but there is an index on col1 and another on
+       col2, it is possible to search both indexes and
+       combine the results in memory, then do heap fetches for only
+       the rows matching both the col1 and
+       col2 restrictions. This is very useful in
+       environments that have a lot of unstructured queries where it
+       is impossible to create indexes that match all possible access
+       conditions.  Bitmap scans are useful even with a single index,
+       as they reduce the amount of random access needed; a bitmap
+       index scan is efficient for retrieving fairly large fractions
+       of the complete table, whereas plain index scans are not.
+      
+     
+    
+
+    
+     
+      Add two-phase commit (Heikki Linnakangas, Alvaro, Tom)
+     
+
+     
+      
+       Two-phase commit allows transactions to be "prepared" on several
+       computers, and once all computers have successfully prepared
+       their transactions (none failed), all transactions can be
+       committed. Even if a machine crashes after a prepare, the
+       prepared transaction can be committed after the machine is
+       restarted. New syntax includes PREPARE TRANSACTION and
+       COMMIT/ROLLBACK PREPARED. A new system view
+       pg_prepared_xacts has also been added.
+      
+     
+    
+
+    
+     
+      Create a new role system that replaces users and groups
+      (Stephen Frost)
+     
+
+     
+      
+       Roles are a combination of users and groups. Like users, they
+       can have login capability, and like groups, a role can have
+       other roles as members. Roles basically remove the distinction
+       between users and groups. For example, a role can:
+      
+
+      
+
+       
+        
+          Have login capability (optionally)
+        
+       
+
+       
+        
+         Own objects
+        
+       
+
+       
+        
+         Hold access permissions for database objects
+        
+       
+
+       
+        
+         Inherit permissions from other roles it is a member of
+        
+       
+
+      
+      
+       Once a user logs into a role, she obtains capabilities of
+       the login role plus any inherited roles, and can use
+       SET ROLE to switch to other roles she is a member of.
+       This feature is a generalization of the SQL standard's concept of
+       roles.
+       This change also replaces pg_shadow and
+       pg_group by new role-capable catalogs
+       pg_authid and pg_auth_members. The old
+       tables are redefined as read-only views on the new role tables.
+      
+     
+    
+
+    
+     
+      Automatically use indexes for MIN() and
+      MAX() (Tom)
+     
+
+     
+      
+       In previous releases, the only way to use an index for
+       MIN() or MAX() was to rewrite the
+       query as SELECT col FROM tab ORDER BY col LIMIT 1.
+       Index usage now happens automatically.
+      
+     
+    
+
+    
+     
+      Move /contrib/pg_autovacuum into the main server
+      (Alvaro)
+     
+
+     
+      
+       Integrating autovacuum into the server allows it to be
+       automatically started and stopped in sync with the database
+       server, and allows autovacuum to be configured from
+       postgresql.conf.
+      
+     
+    
+
+    
+     
+      Add shared row level locks using SELECT ... FOR SHARE
+      (Alvaro)
+     
+
+     
+      
+       While PostgreSQL's MVCC locking
+       allows SELECT to never be blocked by writers and
+       therefore does not need shared row locks for typical operations,
+       shared locks are useful for applications that require shared row
+       locking.  In particular this reduces the locking requirements
+       imposed by referential integrity checks.
+      
+     
+    
+
+    
+     
+      Add dependencies on shared objects, specifically roles
+      (Alvaro)
+     
+
+     
+      
+       This extension of the dependency mechanism prevents roles from
+       being dropped while there are still database objects they own.
+       Formerly it was possible to accidentally orphan objects by
+       deleting their owner.  While this could be recovered from, it
+       was messy and unpleasant.
+      
+     
+    
+
+    
+     
+      Improve performance for partitioned tables (Simon)
+     
+
+     
+      
+       The new constraint_exclusion configuration
+       parameter avoids lookups on child tables where constraints indicate
+       that no matching rows exist in the child table.
+      
+      
+       This allows for a basic type of table partitioning. If child tables
+       store separate key ranges and this is enforced using appropriate
+       CHECK constraints, the optimizer will skip child
+       table accesses when the constraint guarantees no matching rows
+       exist in the child table.
+      
+     
+    
+
+   
+  
+
+  
+   Migration to Version 8.1
+
+   
+    A dump/restore using pg_dump is required
+    for those wishing to migrate data from any previous release.
+   
+
+   
+    The 8.0 release announced that the to_char() function
+    for intervals would be removed in 8.1. However, since no better API
+    has been suggested, to_char(interval) has been enhanced in
+    8.1 and will remain in the server.
+   
+
+   
+    Observe the following incompatibilities:
+   
+
+   
+
+    
+     
+      add_missing_from is now false by default (Neil)
+     
+     
+      By default, we now generate an error if a table is used in a query
+      without a FROM reference.  The old behavior is still
+      available, but the parameter must be set to 'true' to obtain it.
+     
+
+     
+      It might be necessary to set add_missing_from to true
+      in order to load an existing dump file, if the dump contains any
+      views or rules created using the implicit-FROM syntax.
+      This should be a one-time annoyance, because
+      PostgreSQL 8.1 will convert
+      such views and rules to standard explicit-FROM syntax.
+      Subsequent dumps will therefore not have the problem.
+     
+    
+
+    
+     
+      Cause input of a zero-length string ('') for
+      float4/float8/oid
+      to throw an error, rather than treating it as a zero (Neil)
+     
+     
+      This change is consistent with the current handling of
+      zero-length strings for integers. The schedule for this change
+      was announced in 8.0.
+     
+    
+
+    
+     
+      default_with_oids is now false by default (Neil)
+     
+     
+      With this option set to false, user-created tables no longer
+      have an OID column unless WITH OIDS is specified in
+      CREATE TABLE. Though OIDs have existed in all
+      releases of PostgreSQL, their use is limited
+      because they are only four bytes long and the counter is shared
+      across all installed databases. The preferred way of uniquely
+      identifying rows is via sequences and the SERIAL type,
+      which have been supported since PostgreSQL 6.4.
+     
+    
+
+    
+     
+      Add E'' syntax so eventually ordinary strings can
+      treat backslashes literally (Bruce)
+     
+     
+      Currently PostgreSQL processes a
+      backslash in a string literal as introducing a special escape sequence,
+      e.g. \n or \010.
+      While this allows easy entry of special values, it is
+      nonstandard and makes porting of applications from other
+      databases more difficult. For this reason, the
+      PostgreSQL project is planning to
+      remove the special meaning of backslashes in strings. For
+      backward compatibility and for users who want special backslash
+      processing, a new string syntax has been created. This new string
+      syntax is formed by writing an E immediately preceding the
+      single quote that starts the string, e.g. E'hi\n'. While
+      this release does not change the handling of backslashes in strings, it
+      does add new configuration parameters to help users migrate applications
+      for future releases:
+     
+     
+
+      
+       
+        standard_conforming_strings — does this release
+        treat backslashes literally in ordinary strings?
+       
+      
+
+      
+      
+       escape_string_warning — warn about backslashes in
+       ordinary (non-E) strings
+      
+     
+
+     
+
+     
+      The standard_conforming_strings value is read-only.
+      Applications can retrieve the value to know how backslashes are
+      processed.  (Presence of the parameter can also be taken as an
+      indication that E'' string syntax is supported.)
+      In a future release, standard_conforming_strings
+      will be true, meaning backslashes will be treated literally in
+      non-E strings. To prepare for this change, use E''
+      strings in places that need special backslash processing, and
+      turn on escape_string_warning to find additional
+      strings that need to be converted to use E''.
+      Also, use two single-quotes ('') to embed a literal
+      single-quote in a string, rather than the
+      PostgreSQL-supported syntax of
+      backslash single-quote (\').  The former is
+      standards-conforming and does not require the use of the
+      E'' string syntax.  You can also use the
+      $$ string syntax, which does not treat backslashes
+      specially.
+     
+    
+
+    
+     
+      Make REINDEX DATABASE reindex all indexes in the
+      database (Tom)
+     
+     
+      Formerly, REINDEX DATABASE reindexed only
+      system tables. This new behavior seems more intuitive. A new
+      command REINDEX SYSTEM provides the old functionality
+      of reindexing just the system tables.
+     
+    
+
+    
+     
+      Read-only large object descriptors now obey MVCC snapshot semantics
+     
+     
+      When a large object is opened with INV_READ (and not
+      INV_WRITE), the data read from the descriptor will now
+      reflect a snapshot of the large object's state at the
+      time of the transaction snapshot in use by the query that called
+      lo_open().  To obtain the old behavior of always
+      returning the latest committed data, include INV_WRITE
+      in the mode flags for lo_open().
+     
+    
+
+    
+     
+      Add proper dependencies for arguments of sequence functions (Tom)
+     
+     
+      In previous releases, sequence names passed to nextval(),
+      currval(), and setval() were stored as
+      simple text strings, meaning that renaming or dropping a
+      sequence used in a DEFAULT clause made the clause
+      invalid. This release stores all newly-created sequence function
+      arguments as internal OIDs, allowing them to track sequence
+      renaming, and adding dependency information that prevents
+      improper sequence removal. It also makes such DEFAULT
+      clauses immune to schema renaming and search path changes.
+     
+     
+      Some applications might rely on the old behavior of
+      run-time lookup for sequence names. This can still be done by
+      explicitly casting the argument to text, for example
+      nextval('myseq'::text).
+     
+     
+      Pre-8.1 database dumps loaded into 8.1 will use the old text-based
+      representation and therefore will not have the features of
+      OID-stored arguments. However, it is possible to update a
+      database containing text-based DEFAULT clauses.
+      First, save this query into a file, such as fixseq.sql:
+
+SELECT  'ALTER TABLE ' ||
+   pg_catalog.quote_ident(n.nspname) || '.' ||
+   pg_catalog.quote_ident(c.relname) ||
+   ' ALTER COLUMN ' || pg_catalog.quote_ident(a.attname) ||
+   ' SET DEFAULT ' ||
+   regexp_replace(d.adsrc,
+                  $$val\(\(('[^']*')::text\)::regclass$$,
+                  $$val(\1$$,
+                  'g') ||
+   ';'
+FROM    pg_namespace n, pg_class c, pg_attribute a, pg_attrdef d
+WHERE   n.oid = c.relnamespace AND
+   c.oid = a.attrelid AND
+   a.attrelid = d.adrelid AND
+   a.attnum = d.adnum AND
+   d.adsrc ~ $$val\(\('[^']*'::text\)::regclass$$;
+
+      Next, run the query against a database to find what
+      adjustments are required, like this for database db1:
+
+psql -t -f fixseq.sql db1
+
+      This will show the ALTER TABLE commands needed to
+      convert the database to the newer OID-based representation.
+      If the commands look reasonable, run this to update the database:
+
+psql -t -f fixseq.sql db1 | psql -e db1
+
+      This process must be repeated in each database to be updated.
+     
+    
+
+    
+     
+      In psql, treat unquoted
+      \{digit}+ sequences as octal (Bruce)
+     
+     
+      In previous releases, \{digit}+ sequences were
+      treated as decimal, and only \0{digit}+ were treated
+      as octal. This change was made for consistency.
+     
+    
+
+    
+     
+      Remove grammar productions for prefix and postfix %
+      and ^ operators
+      (Tom)
+     
+     
+      These have never been documented and complicated the use of the
+      modulus operator (%) with negative numbers.
+     
+    
+
+    
+     
+      Make &< and &> for polygons
+      consistent with the box "over" operators (Tom)
+     
+    
+
+    
+     
+      CREATE LANGUAGE can ignore the provided arguments
+      in favor of information from pg_pltemplate
+      (Tom)
+     
+     
+      A new system catalog pg_pltemplate has been defined
+      to carry information about the preferred definitions of procedural
+      languages (such as whether they have validator functions).  When
+      an entry exists in this catalog for the language being created,
+      CREATE LANGUAGE will ignore all its parameters except the
+      language name and instead use the catalog information.  This measure
+      was taken because of increasing problems with obsolete language
+      definitions being loaded by old dump files.  As of 8.1,
+      pg_dump will dump procedural language definitions as
+      just CREATE LANGUAGE name, relying
+      on a template entry to exist at load time.  We expect this will be a
+      more future-proof representation.
+     
+    
+
+    
+     
+      Make pg_cancel_backend(int) return a
+      boolean rather than an integer (Neil)
+     
+    
+
+    
+     
+      Some users are having problems loading UTF-8 data into 8.1.X.
+      This is because previous versions allowed invalid UTF-8 byte
+      sequences to be entered into the database, and this release
+      properly accepts only valid UTF-8 sequences. One way to correct a
+      dumpfile is to run the command iconv -c -f UTF-8 -t
+      UTF-8 -o cleanfile.sql dumpfile.sql. The -c option
+      removes invalid character sequences. A diff of the two files will
+      show the sequences that are invalid. iconv reads the
+      entire input file into memory so it might be necessary to use
+      split to break up the dump into multiple smaller
+      files for processing.
+     
+    
+
+   
+  
+
+  
+   Additional Changes
+
+   
+    Below you will find a detailed account of the additional changes
+    between PostgreSQL 8.1 and the
+    previous major release.
+   
+
+   
+    Performance Improvements
+    
+
+     
+      
+       Improve GiST and R-tree index performance (Neil)
+      
+     
+
+     
+      
+       Improve the optimizer, including auto-resizing of hash joins
+       (Tom)
+      
+     
+
+     
+      
+       Overhaul internal API in several areas
+      
+     
+
+     
+      
+       Change WAL record CRCs from 64-bit to 32-bit (Tom)
+      
+      
+       We determined that the extra cost of computing 64-bit CRCs was
+       significant, and the gain in reliability too marginal to justify it.
+      
+     
+
+     
+      
+       Prevent writing large empty gaps in WAL pages (Tom)
+      
+     
+
+     
+      
+       Improve spinlock behavior on SMP machines, particularly Opterons (Tom)
+      
+     
+
+     
+      
+       Allow nonconsecutive index columns to be used in a multicolumn
+       index (Tom)
+      
+      
+       For example, this allows an index on columns a,b,c to be used in
+       a query with WHERE a = 4 and c = 10.
+      
+     
+
+     
+      
+       Skip WAL logging for CREATE TABLE AS /
+       SELECT INTO (Simon)
+      
+      
+       Since a crash during CREATE TABLE AS would cause the
+       table to be dropped during recovery, there is no reason to WAL
+       log as the table is loaded.  (Logging still happens if WAL
+       archiving is enabled, however.)
+      
+     
+
+     
+      
+       Allow concurrent GiST index access (Teodor, Oleg)
+      
+     
+
+     
+      
+       Add configuration parameter full_page_writes to
+       control writing full pages to WAL (Bruce)
+      
+      
+       To prevent partial disk writes from corrupting the database,
+       PostgreSQL writes a complete copy of
+       each database disk page to WAL the first time it is modified
+       after a checkpoint. This option turns off that functionality for more
+       speed.  This is safe to use with battery-backed disk caches where
+       partial page writes cannot happen.
+      
+     
+
+     
+      
+       Use O_DIRECT if available when using
+       O_SYNC for wal_sync_method
+       (Itagaki Takahiro)
+      
+      
+       O_DIRECT causes disk writes to bypass the kernel
+       cache, and for WAL writes, this improves performance.
+      
+     
+
+     
+      
+       Improve COPY FROM performance (Alon Goldshuv)
+      
+      
+       This was accomplished by reading COPY input in
+       larger chunks, rather than character by character.
+      
+     
+
+     
+      
+       Improve the performance of COUNT(),
+       SUMAVG(),
+       STDDEV(), and
+       VARIANCE() (Neil, Tom)
+      
+     
+    
+   
+
+   
+    Server Changes
+    
+
+     
+      
+       Prevent problems due to transaction ID (XID) wraparound (Tom)
+      
+      
+       The server will now warn when the transaction counter approaches
+       the wraparound point.  If the counter becomes too close to wraparound,
+       the server will stop accepting queries.  This ensures that data is
+       not lost before needed vacuuming is performed.
+      
+     
+
+     
+      
+       Fix problems with object IDs (OIDs) conflicting with existing system
+       objects after the OID counter has wrapped around (Tom)
+      
+     
+
+     
+      
+       Add warning about the need to increase
+       max_fsm_relations and max_fsm_pages
+       during VACUUM (Ron Mayer)
+      
+     
+
+     
+      
+       Add temp_buffers configuration parameter to allow
+       users to determine the size of the local buffer area for
+       temporary table access (Tom)
+      
+     
+
+     
+      
+       Add session start time and client IP address to
+       pg_stat_activity (Magnus)
+      
+     
+
+     
+      
+       Adjust pg_stat views for bitmap scans (Tom)
+      
+      
+       The meanings of some of the fields have changed slightly.
+      
+     
+
+     
+      
+       Enhance pg_locks view (Tom)
+      
+     
+
+     
+      
+       Log queries for client-side PREPARE and
+       EXECUTE (Simon)
+      
+     
+
+     
+      
+       Allow Kerberos name and user name case sensitivity to be
+       specified in postgresql.conf (Magnus)
+      
+     
+
+     
+      
+       Add configuration parameter krb_server_hostname so
+       that the server host name can be specified as part of service
+       principal (Todd Kover)
+      
+      
+       If not set, any service principal matching an entry in the
+       keytab can be used. This is new Kerberos matching behavior in
+       this release.
+      
+     
+
+     
+      
+       Add log_line_prefix options for millisecond
+       timestamps (%m) and remote host (%h) (Ed
+       L.)
+      
+     
+
+     
+      
+       Add WAL logging for GiST indexes (Teodor, Oleg)
+      
+      
+       GiST indexes are now safe for crash and point-in-time recovery.
+      
+     
+
+     
+      
+       Remove old *.backup files when we do
+       pg_stop_backup() (Bruce)
+      
+      
+       This prevents a large number of *.backup files from
+       existing in pg_xlog/.
+      
+     
+
+     
+      
+       Add configuration parameters to control TCP/IP keep-alive
+       times for idle, interval, and count (Oliver Jowett)
+      
+
+      
+       These values can be changed to allow more rapid detection of
+       lost client connections.
+      
+     
+
+     
+      
+       Add per-user and per-database connection limits (Petr Jelinek)
+      
+      
+       Using ALTER USER and ALTER DATABASE,
+       limits can now be enforced on the maximum number of sessions that
+       can concurrently connect as a specific user or to a specific database.
+       Setting the limit to zero disables user or database connections.
+      
+     
+
+     
+      
+       Allow more than two gigabytes of shared memory and per-backend
+       work memory on 64-bit machines (Koichi Suzuki)
+      
+     
+
+     
+      
+       New system catalog pg_pltemplate allows overriding
+       obsolete procedural-language definitions in dump files (Tom)
+      
+     
+
+    
+   
+
+
+   
+    Query Changes
+    
+
+     
+      
+       Add temporary views (Koju Iijima, Neil)
+      
+     
+
+     
+      
+       Fix HAVING without any aggregate functions or
+       GROUP BY so that the query returns a single group (Tom)
+      
+      
+       Previously, such a case would treat the HAVING
+       clause the same as a WHERE clause.  This was not per spec.
+      
+     
+
+     
+      
+       Add USING clause to allow additional tables to be
+       specified to DELETE (Euler Taveira de Oliveira, Neil)
+      
+      
+       In prior releases, there was no clear method for specifying
+       additional tables to be used for joins in a DELETE
+       statement. UPDATE already has a FROM
+       clause for this purpose.
+      
+     
+
+     
+      
+       Add support for \x hex escapes in backend and ecpg
+       strings (Bruce)
+      
+      
+       This is just like the standard C \x escape syntax.
+       Octal escapes were already supported.
+      
+     
+
+     
+      
+       Add BETWEEN SYMMETRIC query syntax (Pavel Stehule)
+      
+      
+       This feature allows BETWEEN comparisons without
+       requiring the first value to be less than the second. For
+       example, 2 BETWEEN [ASYMMETRIC] 3 AND 1 returns
+       false, while 2 BETWEEN SYMMETRIC 3 AND 1 returns
+       true. BETWEEN ASYMMETRIC was already supported.
+      
+     
+
+     
+      
+       Add NOWAIT option to SELECT ... FOR
+       UPDATE/SHARE (Hans-Juergen Schoenig)
+      
+      
+       While the statement_timeout configuration
+       parameter allows a query taking more than a certain amount of
+       time to be cancelled, the NOWAIT option allows a
+       query to be canceled as soon as a SELECT ... FOR
+       UPDATE/SHARE command cannot immediately acquire a row lock.
+      
+     
+    
+   
+
+
+   
+    Object Manipulation Changes
+    
+
+     
+      
+       Track dependencies of shared objects (Alvaro)
+      
+      
+       PostgreSQL allows global tables
+       (users, databases, tablespaces) to reference information in
+       multiple databases. This addition adds dependency information
+       for global tables, so, for example, user ownership can be
+       tracked across databases, so a user who owns something in any
+       database can no longer be removed. Dependency tracking already
+       existed for database-local objects.
+      
+     
+
+     
+      
+       Allow limited ALTER OWNER commands to be performed
+       by the object owner (Stephen Frost)
+      
+      
+       Prior releases allowed only superusers to change object owners.
+       Now, ownership can be transferred if the user executing the command
+       owns the object and would be able to create it as the new owner
+       (that is, the user is a member of the new owning role and that role
+       has the CREATE permission that would be needed to create the object
+       afresh).
+      
+     
+
+     
+      
+       Add ALTER object SET SCHEMA capability
+       for some object types (tables, functions, types) (Bernd Helmle)
+      
+      
+       This allows objects to be moved to different schemas.
+      
+     
+
+     
+      
+       Add ALTER TABLE ENABLE/DISABLE TRIGGER to
+       disable triggers (Satoshi Nagayasu)
+      
+     
+
+    
+   
+
+
+   
+    Utility Command Changes
+    
+
+     
+      
+       Allow TRUNCATE to truncate multiple tables in a
+       single command (Alvaro)
+      
+      
+       Because of referential integrity checks, it is not allowed to
+       truncate a table that is part of a referential integrity
+       constraint. Using this new functionality, TRUNCATE
+       can be used to truncate such tables, if both tables involved in
+       a referential integrity constraint are truncated in a single
+       TRUNCATE command.
+      
+     
+
+     
+      
+       Properly process carriage returns and line feeds in
+       COPY CSV mode (Andrew)
+      
+      
+       In release 8.0, carriage returns and line feeds in CSV
+       COPY TO were processed in an inconsistent manner. (This was
+       documented on the TODO list.)
+      
+     
+
+     
+      
+       Add COPY WITH CSV HEADER to allow a header line as
+       the first line in COPY (Andrew)
+      
+      
+       This allows handling of the common CSV usage of
+       placing the column names on the first line of the data file. For
+       COPY TO, the first line contains the column names,
+       and for COPY FROM, the first line is ignored.
+      
+     
+
+     
+      
+       On Windows, display better sub-second precision in
+       EXPLAIN ANALYZE (Magnus)
+      
+     
+
+     
+      
+       Add trigger duration display to EXPLAIN ANALYZE
+       (Tom)
+      
+      
+       Prior releases included trigger execution time as part of the
+       total execution time, but did not show it separately.  It is now
+       possible to see how much time is spent in each trigger.
+      
+     
+
+     
+      
+       Add support for \x hex escapes in COPY
+       (Sergey Ten)
+      
+      
+       Previous releases only supported octal escapes.
+      
+     
+
+     
+      
+       Make SHOW ALL include variable descriptions
+       (Matthias Schmidt)
+      
+      
+       SHOW varname still only displays the variable's
+       value and does not include the description.
+      
+     
+
+     
+      
+       Make initdb create a new standard
+       database called postgres, and convert utilities to
+       use postgres rather than template1 for
+       standard lookups (Dave)
+      
+      
+       In prior releases, template1 was used both as a
+       default connection for utilities like
+       createuser, and as a template for
+       new databases. This caused CREATE DATABASE to
+       sometimes fail, because a new database cannot be created if
+       anyone else is in the template database. With this change, the
+       default connection database is now postgres,
+       meaning it is much less likely someone will be using
+       template1 during CREATE DATABASE.
+      
+     
+
+     
+      
+       Create new reindexdb command-line
+       utility by moving /contrib/reindexdb into the
+       server (Euler Taveira de Oliveira)
+      
+     
+
+    
+   
+
+
+   
+    Data Type and Function Changes
+    
+
+     
+      
+       Add MAX() and MIN() aggregates for
+       array types (Koju Iijima)
+      
+     
+
+     
+      
+       Fix to_date() and to_timestamp() to
+       behave reasonably when CC and YY fields
+       are both used (Karel Zak)
+      
+      
+       If the format specification contains CC and a year
+       specification is YYY or longer, ignore the
+       CC. If the year specification is YY or
+       shorter, interpret CC as the previous century.
+      
+     
+
+     
+      
+       Add md5(bytea) (Abhijit Menon-Sen)
+      
+      
+       md5(text) already existed.
+      
+     
+
+     
+      
+       Add support for numeric ^ numeric based on
+       power(numeric, numeric)
+      
+      
+       The function already existed, but there was no operator assigned
+       to it.
+      
+     
+
+     
+      
+       Fix NUMERIC modulus by properly truncating the quotient
+       during computation (Bruce)
+      
+      
+       In previous releases, modulus for large values sometimes
+       returned negative results due to rounding of the quotient.
+      
+     
+
+     
+      
+       Add a function lastval() (Dennis Björklund)
+      
+      
+       lastval() is a simplified version of
+       currval(). It automatically determines the proper
+       sequence name based on the most recent nextval() or
+       setval() call performed by the current session.
+      
+     
+
+     
+      
+       Add to_timestamp(DOUBLE PRECISION) (Michael Glaesemann)
+      
+      
+       Converts Unix seconds since 1970 to a TIMESTAMP WITH
+       TIMEZONE.
+      
+     
+
+     
+      
+       Add pg_postmaster_start_time() function (Euler
+       Taveira de Oliveira, Matthias Schmidt)
+      
+     
+
+     
+      
+       Allow the full use of time zone names in AT TIME
+       ZONE, not just the short list previously available (Magnus)
+      
+      
+       Previously, only a predefined list of time zone names were
+       supported by AT TIME ZONE. Now any supported time
+       zone name can be used, e.g.:
+       
+        SELECT CURRENT_TIMESTAMP AT TIME ZONE 'Europe/London';
+       
+       In the above query, the time zone used is adjusted based on the
+       daylight saving time rules that were in effect on the supplied
+       date.
+      
+     
+
+     
+      
+       Add GREATEST() and LEAST() variadic
+       functions (Pavel Stehule)
+      
+      
+       These functions take a variable number of arguments and return
+       the greatest or least value among the arguments.
+      
+     
+
+     
+      
+       Add pg_column_size() (Mark Kirkwood)
+      
+      
+       This returns storage size of a column, which might be compressed.
+      
+     
+
+     
+      
+       Add regexp_replace() (Atsushi Ogawa)
+      
+      
+       This allows regular expression replacement, like sed. An optional
+       flag argument allows selection of global (replace all) and
+       case-insensitive modes.
+      
+     
+
+     
+      
+       Fix interval division and multiplication (Bruce)
+      
+      
+       Previous versions sometimes returned unjustified results, like
+       '4 months'::interval / 5 returning '1 mon
+       -6 days'.
+      
+     
+
+     
+      
+       Fix roundoff behavior in timestamp, time, and interval output (Tom)
+      
+      
+       This fixes some cases in which the seconds field would be shown as
+       60 instead of incrementing the higher-order fields.
+      
+     
+
+     
+      
+       Add a separate day field to type interval so a one day
+       interval can be distinguished from a 24 hour interval (Michael
+       Glaesemann)
+      
+      
+       Days that contain a daylight saving time adjustment are not 24
+       hours long, but typically 23 or 25 hours.  This change creates a
+       conceptual distinction between intervals of so many days
+       and intervals of so many hours.  Adding
+       1 day to a timestamp now gives the same local time on
+       the next day even if a daylight saving time adjustment occurs
+       between, whereas adding 24 hours will give a different
+       local time when this happens.  For example, under US DST rules:
+       
+        '2005-04-03 00:00:00-05' + '1 day' = '2005-04-04 00:00:00-04'
+        '2005-04-03 00:00:00-05' + '24 hours' = '2005-04-04 01:00:00-04'
+       
+      
+     
+
+     
+      
+       Add justify_days() and justify_hours()
+       (Michael Glaesemann)
+      
+      
+       These functions, respectively, adjust days to an appropriate
+       number of full months and days, and adjust hours to an
+       appropriate number of full days and hours.
+      
+     
+
+     
+      
+       Move /contrib/dbsize into the backend, and rename
+       some of the functions (Dave Page, Andreas Pflug)
+      
+      
+       
+
+        
+         
+           pg_tablespace_size()
+         
+        
+
+        
+         
+          pg_database_size()
+         
+        
+
+        
+         
+          pg_relation_size()
+         
+        
+
+        
+         
+          pg_total_relation_size()
+         
+        
+
+        
+         
+          pg_size_pretty()
+         
+        
+
+       
+      
+      
+       pg_total_relation_size() includes indexes and TOAST
+       tables.
+      
+     
+
+     
+      
+       Add functions for read-only file access to the cluster directory
+       (Dave Page, Andreas Pflug)
+      
+      
+       
+
+        
+         
+          pg_stat_file()
+         
+        
+
+        
+         
+          pg_read_file()
+         
+        
+
+        
+         
+          pg_ls_dir()
+         
+        
+
+       
+      
+     
+
+     
+      
+       Add pg_reload_conf() to force reloading of the
+       configuration files (Dave Page, Andreas Pflug)
+      
+     
+
+     
+      
+       Add pg_rotate_logfile() to force rotation of the
+       server log file (Dave Page, Andreas Pflug)
+      
+     
+
+     
+      
+       Change pg_stat_* views to include TOAST tables (Tom)
+      
+     
+
+    
+   
+
+
+   
+    Encoding and Locale Changes
+    
+
+     
+      
+       Rename some encodings to be more consistent and to follow
+       international standards (Bruce)
+      
+      
+       
+
+        
+         
+          UNICODE is now UTF8
+         
+        
+
+        
+         
+          ALT is now WIN866
+         
+        
+
+        
+         
+          WIN is now WIN1251
+         
+        
+
+        
+         
+         TCVN is now WIN1258
+         
+        
+
+       
+      
+
+      
+       The original names still work.
+      
+     
+
+     
+      
+       Add support for WIN1252 encoding (Roland Volkmann)
+      
+     
+
+     
+      
+       Add support for four-byte UTF8 characters (John
+       Hansen)
+      
+      
+       Previously only one, two, and three-byte UTF8 characters
+       were supported. This is particularly important for support for
+       some Chinese character sets.
+      
+     
+
+     
+      
+       Allow direct conversion between EUC_JP and
+       SJIS to improve performance (Atsushi Ogawa)
+      
+     
+
+     
+      
+       Allow the UTF8 encoding to work on Windows (Magnus)
+      
+      
+       This is done by mapping UTF8 to the Windows-native UTF16
+       implementation.
+      
+     
+
+    
+   
+
+
+   
+    General Server-Side Language Changes
+    
+
+     
+      
+       Fix ALTER LANGUAGE RENAME (Sergey Yatskevich)
+      
+     
+
+     
+      
+       Allow function characteristics, like strictness and volatility,
+       to be modified via ALTER FUNCTION (Neil)
+      
+     
+
+     
+      
+       Increase the maximum number of function arguments to 100 (Tom)
+      
+     
+
+     
+      
+       Allow SQL and PL/PgSQL functions to use OUT and
+       INOUT parameters (Tom)
+      
+      
+       OUT is an alternate way for a function to return
+       values. Instead of using RETURN, values can be
+       returned by assigning to parameters declared as OUT or
+       INOUT.  This is notationally simpler in some cases,
+       particularly so when multiple values need to be returned.
+       While returning multiple values from a function
+       was possible in previous releases, this greatly simplifies the
+       process.  (The feature will be extended to other server-side
+       languages in future releases.)
+      
+     
+
+     
+      
+       Move language handler functions into the pg_catalog schema
+      
+      
+       This makes it easier to drop the public schema if desired.
+      
+     
+
+     
+      
+       Add SPI_getnspname() to SPI (Neil)
+      
+     
+
+    
+   
+
+   
+    PL/PgSQL Server-Side Language Changes
+    
+
+     
+      
+       Overhaul the memory management of PL/PgSQL functions (Neil)
+      
+      
+       The parsetree of each function is now stored in a separate
+       memory context. This allows this memory to be easily reclaimed
+       when it is no longer needed.
+      
+     
+
+     
+      
+       Check function syntax at CREATE FUNCTION time,
+       rather than at runtime (Neil)
+      
+      
+       Previously, most syntax errors were reported only when the
+       function was executed.
+      
+     
+
+     
+      
+       Allow OPEN to open non-SELECT queries
+       like EXPLAIN and SHOW (Tom)
+      
+     
+
+     
+      
+       No longer require functions to issue a RETURN
+       statement (Tom)
+      
+      
+       This is a byproduct of the newly added OUT and
+       INOUT functionality.  RETURN can
+       be omitted when it is not needed to provide the function's
+       return value.
+      
+     
+
+     
+      
+       Add support for an optional INTO clause to
+       PL/PgSQL's EXECUTE statement (Pavel Stehule, Neil)
+      
+     
+
+     
+      
+       Make CREATE TABLE AS set ROW_COUNT (Tom)
+      
+     
+
+     
+      
+       Define SQLSTATE and SQLERRM to return
+       the SQLSTATE and error message of the current
+       exception (Pavel Stehule, Neil)
+      
+      
+       These variables are only defined inside exception blocks.
+      
+     
+
+     
+      
+       Allow the parameters to the RAISE statement to be
+       expressions (Pavel Stehule, Neil)
+      
+     
+
+     
+      
+       Add a loop CONTINUE statement (Pavel Stehule, Neil)
+      
+     
+
+     
+      
+       Allow block and loop labels (Pavel Stehule)
+      
+     
+
+    
+   
+
+
+   
+    PL/Perl Server-Side Language Changes
+    
+
+     
+      
+       Allow large result sets to be returned efficiently (Abhijit
+       Menon-Sen)
+      
+      
+       This allows functions to use return_next() to avoid
+       building the entire result set in memory.
+      
+     
+
+     
+      
+       Allow one-row-at-a-time retrieval of query results (Abhijit Menon-Sen)
+      
+      
+       This allows functions to use spi_query() and
+       spi_fetchrow() to avoid accumulating the entire
+       result set in memory.
+      
+     
+
+     
+      
+       Force PL/Perl to handle strings as UTF8 if the
+       server encoding is UTF8 (David Kamholz)
+      
+     
+
+     
+      
+       Add a validator function for PL/Perl (Andrew)
+      
+      
+       This allows syntax errors to be reported at definition time,
+       rather than execution time.
+      
+     
+
+     
+      
+       Allow PL/Perl to return a Perl array when the function returns
+       an array type (Andrew)
+      
+      
+       This basically maps PostgreSQL arrays
+       to Perl arrays.
+      
+     
+
+     
+      
+       Allow Perl nonfatal warnings to generate NOTICE
+       messages (Andrew)
+      
+     
+
+     
+      
+       Allow Perl's strict mode to be enabled (Andrew)
+      
+     
+
+    
+   
+
+
+   
+    <application>psql</> Changes
+    
+
+     
+      
+       Add \set ON_ERROR_ROLLBACK to allow statements in
+       a transaction to error without affecting the rest of the
+       transaction (Greg Sabino Mullane)
+      
+      
+       This is basically implemented by wrapping every statement in a
+       sub-transaction.
+      
+     
+
+     
+      
+       Add support for \x hex strings in
+       psql variables (Bruce)
+      
+      
+       Octal escapes were already supported.
+      
+     
+
+     
+      
+       Add support for troff -ms output format (Roger
+       Leigh)
+      
+     
+
+     
+      
+       Allow the history file location to be controlled by
+       HISTFILE (Andreas Seltenreich)
+      
+      
+       This allows configuration of per-database history storage.
+      
+     
+
+     
+      
+       Prevent \x (expanded mode) from affecting
+       the output of \d tablename (Neil)
+      
+     
+
+     
+      
+       Add 
+       log sessions (Lorne Sunley)
+      
+      
+       This option was added because some operating systems do not have
+       simple command-line activity logging functionality.
+      
+     
+
+     
+      
+       Make \d show the tablespaces of indexes (Qingqing
+       Zhou)
+      
+     
+
+     
+      
+       Allow psql help (\h) to
+       make a best guess on the proper help information (Greg Sabino
+       Mullane)
+      
+      
+       This allows the user to just add \h to the front of
+       the syntax error query and get help on the supported syntax.
+       Previously any additional query text beyond the command name
+       had to be removed to use \h.
+      
+     
+
+     
+      
+       Add \pset numericlocale to allow numbers to be
+       output in a locale-aware format (Eugen Nedelcu)
+      
+      
+       For example, using C locale 100000 would
+       be output as 100,000.0 while a European locale might
+       output this value as 100.000,0.
+      
+     
+
+     
+      
+       Make startup banner show both server version number and
+       psql's version number, when they are different (Bruce)
+      
+      
+       Also, a warning will be shown if the server and psql
+       are from different major releases.
+      
+     
+
+    
+   
+
+
+   
+    <application>pg_dump</> Changes
+    
+
+     
+      
+       Add 
+       pg_restore (Richard van den Berg)
+      
+      
+       This allows just the objects in a specified schema to be restored.
+      
+     
+
+     
+      
+       Allow pg_dump to dump large objects even in
+       text mode (Tom)
+      
+      
+       With this change, large objects are now always dumped; the former
+       
+      
+     
+
+     
+      
+       Allow pg_dump to dump a consistent snapshot of
+       large objects (Tom)
+      
+     
+
+     
+      
+       Dump comments for large objects (Tom)
+      
+     
+
+     
+      
+       Add 
+       (Magnus Hagander)
+      
+      
+       This allows a database to be dumped in an encoding that is
+       different from the server's encoding. This is valuable when
+       transferring the dump to a machine with a different encoding.
+      
+     
+
+     
+      
+       Rely on pg_pltemplate for procedural languages (Tom)
+      
+      
+       If the call handler for a procedural language is in the
+       pg_catalog schema, pg_dump does not
+       dump the handler.  Instead, it dumps the language using just
+       CREATE LANGUAGE name,
+       relying on the pg_pltemplate catalog to provide
+       the language's creation parameters at load time.
+      
+     
+
+    
+   
+
+
+   
+    <application>libpq</application> Changes
+    
+
+     
+      
+       Add a PGPASSFILE environment variable to specify the
+       password file's filename (Andrew)
+      
+     
+
+     
+      
+       Add lo_create(), that is similar to
+       lo_creat() but allows the OID of the large object
+       to be specified (Tom)
+      
+     
+
+     
+      
+       Make libpq consistently return an error
+       to the client application on malloc()
+       failure (Neil)
+      
+     
+    
+   
+
+
+   
+    Source Code Changes
+    
+
+     
+      
+       Fix pgxs to support building against a relocated
+       installation
+      
+     
+
+     
+      
+       Add spinlock support for the Itanium processor using Intel
+       compiler (Vikram Kalsi)
+      
+     
+
+     
+      
+       Add Kerberos 5 support for Windows (Magnus)
+      
+     
+
+     
+      
+       Add Chinese FAQ ([email protected])
+      
+     
+
+     
+      
+       Rename Rendezvous to Bonjour to match OS/X feature renaming
+       (Bruce)
+      
+     
+
+     
+      
+       Add support for fsync_writethrough on
+       Darwin (Chris Campbell)
+      
+     
+
+     
+      
+       Streamline the passing of information within the server, the
+       optimizer, and the lock system (Tom)
+      
+     
+
+     
+      
+       Allow pg_config to be compiled using MSVC (Andrew)
+      
+      
+       This is required to build DBD::Pg using MSVC.
+      
+     
+
+     
+      
+       Remove support for Kerberos V4 (Magnus)
+      
+      
+       Kerberos 4 had security vulnerabilities and is no longer
+       maintained.
+      
+     
+
+     
+      
+       Code cleanups (Coverity static analysis performed by
+       EnterpriseDB)
+      
+     
+
+     
+      
+       Modify postgresql.conf to use documentation defaults
+       on/off rather than
+       true/false (Bruce)
+      
+     
+
+     
+      
+       Enhance pg_config to be able to report more
+       build-time values (Tom)
+      
+     
+
+     
+      
+       Allow libpq to be built thread-safe
+       on Windows (Dave Page)
+      
+     
+
+     
+      
+       Allow IPv6 connections to be used on Windows (Andrew)
+      
+     
+
+     
+      
+       Add Server Administration documentation about I/O subsystem
+       reliability (Bruce)
+      
+     
+
+     
+      
+       Move private declarations from gist.h to
+       gist_private.h (Neil)
+      
+
+      
+       In previous releases, gist.h contained both the
+       public GiST API (intended for use by authors of GiST index
+       implementations) as well as some private declarations used by
+       the implementation of GiST itself. The latter have been moved
+       to a separate file, gist_private.h. Most GiST
+       index implementations should be unaffected.
+      
+     
+
+     
+      
+       Overhaul GiST memory management (Neil)
+      
+
+      
+       GiST methods are now always invoked in a short-lived memory
+       context. Therefore, memory allocated via palloc()
+       will be reclaimed automatically, so GiST index implementations
+       do not need to manually release allocated memory via
+       pfree().
+      
+     
+    
+   
+
+
+   
+    Contrib Changes
+    
+
+     
+      
+       Add /contrib/pg_buffercache contrib module (Mark
+       Kirkwood)
+      
+      
+       This displays the contents of the buffer cache, for debugging and
+       performance tuning purposes.
+      
+     
+
+     
+      
+       Remove /contrib/array because it is obsolete (Tom)
+      
+     
+
+     
+      
+       Clean up the /contrib/lo module (Tom)
+      
+     
+
+     
+      
+       Move /contrib/findoidjoins to
+       /src/tools (Tom)
+      
+     
+
+     
+      
+       Remove the <<, >>,
+       &<, and &> operators from
+       /contrib/cube
+      
+      
+       These operators were not useful.
+      
+     
+
+     
+      
+       Improve /contrib/btree_gist (Janko Richter)
+      
+     
+
+     
+      
+       Improve /contrib/pgbench (Tomoaki Sato, Tatsuo)
+      
+      
+       There is now a facility for testing with SQL command scripts given
+       by the user, instead of only a hard-wired command sequence.
+      
+     
+
+     
+      
+       Improve /contrib/pgcrypto (Marko Kreen)
+      
+
+      
+
+       
+        
+         Implementation of OpenPGP symmetric-key and public-key encryption
+        
+        
+         Both RSA and Elgamal public-key algorithms are supported.
+        
+       
+
+       
+        
+         Stand alone build: include SHA256/384/512 hashes, Fortuna PRNG
+        
+       
+
+       
+        
+         OpenSSL build: support 3DES, use internal AES with OpenSSL < 0.9.7
+        
+       
+
+       
+        
+         Take build parameters (OpenSSL, zlib) from configure result
+        
+        
+         There is no need to edit the Makefile anymore.
+        
+       
+
+       
+        
+         Remove support for libmhash and libmcrypt
+        
+       
+
+      
+     
+
+    
+   
+
+  
diff --git a/doc/src/sgml/release-8.2.sgml b/doc/src/sgml/release-8.2.sgml
new file mode 100644 (file)
index 0000000..b636d99
--- /dev/null
@@ -0,0 +1,4802 @@
+
+
+
+  Release 8.2.13
+
+  
+  Release date
+  2009-03-16
+  
+
+  
+   This release contains a variety of fixes from 8.2.12.
+   For information about new features in the 8.2 major release, see
+   .
+  
+
+  
+   Migration to Version 8.2.13
+
+   
+    A dump/restore is not required for those running 8.2.X.
+    However, if you are upgrading from a version earlier than 8.2.11,
+    see the release notes for 8.2.11.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Prevent error recursion crashes when encoding conversion fails (Tom)
+     
+
+     
+      This change extends fixes made in the last two minor releases for
+      related failure scenarios.  The previous fixes were narrowly tailored
+      for the original problem reports, but we have now recognized that
+      any error thrown by an encoding conversion function could
+      potentially lead to infinite recursion while trying to report the
+      error.  The solution therefore is to disable translation and encoding
+      conversion and report the plain-ASCII form of any error message,
+      if we find we have gotten into a recursive error reporting situation.
+      (CVE-2009-0922)
+     
+    
+
+    
+     
+      Disallow CREATE CONVERSION with the wrong encodings
+      for the specified conversion function (Heikki)
+     
+
+     
+      This prevents one possible scenario for encoding conversion failure.
+      The previous change is a backstop to guard against other kinds of
+      failures in the same area.
+     
+    
+
+    
+     
+      Fix core dump when to_char() is given format codes that
+      are inappropriate for the type of the data argument (Tom)
+     
+    
+
+    
+     
+      Fix possible failure in contrib/tsearch2 when C locale is
+      used with a multi-byte encoding (Teodor)
+     
+
+     
+      Crashes were possible on platforms where wchar_t is narrower
+      than int; Windows in particular.
+     
+    
+
+    
+     
+      Fix extreme inefficiency in contrib/tsearch2 parser's
+      handling of an email-like string containing multiple @
+      characters (Heikki)
+     
+    
+
+    
+     
+      Fix decompilation of CASE WHEN with an implicit coercion
+      (Tom)
+     
+
+     
+      This mistake could lead to Assert failures in an Assert-enabled build,
+      or an unexpected CASE WHEN clause error message in other
+      cases, when trying to examine or dump a view.
+     
+    
+
+    
+     
+      Fix possible misassignment of the owner of a TOAST table's rowtype (Tom)
+     
+
+     
+      If CLUSTER or a rewriting variant of ALTER TABLE
+      were executed by someone other than the table owner, the
+      pg_type entry for the table's TOAST table would end up
+      marked as owned by that someone.  This caused no immediate problems,
+      since the permissions on the TOAST rowtype aren't examined by any
+      ordinary database operation.  However, it could lead to unexpected
+      failures if one later tried to drop the role that issued the command
+      (in 8.1 or 8.2), or owner of data type appears to be invalid
+      warnings from pg_dump after having done so (in 8.3).
+     
+    
+
+    
+     
+      Fix PL/pgSQL to not treat INTO after INSERT as
+      an INTO-variables clause anywhere in the string, not only at the start;
+      in particular, don't fail for INSERT INTO within
+      CREATE RULE (Tom)
+     
+    
+
+    
+     
+      Clean up PL/pgSQL error status variables fully at block exit
+      (Ashesh Vashi and Dave Page)
+     
+
+     
+      This is not a problem for PL/pgSQL itself, but the omission could cause
+      the PL/pgSQL Debugger to crash while examining the state of a function.
+     
+    
+
+    
+     
+      Retry failed calls to CallNamedPipe() on Windows
+      (Steve Marshall, Magnus)
+     
+
+     
+      It appears that this function can sometimes fail transiently;
+      we previously treated any failure as a hard error, which could
+      confuse LISTEN/NOTIFY as well as other
+      operations.
+     
+    
+
+    
+     
+      Add MUST (Mauritius Island Summer Time) to the default list
+      of known timezone abbreviations (Xavier Bugaud)
+     
+    
+
+   
+
+  
+
+  Release 8.2.12
+
+  
+  Release date
+  2009-02-02
+  
+
+  
+   This release contains a variety of fixes from 8.2.11.
+   For information about new features in the 8.2 major release, see
+   .
+  
+
+  
+   Migration to Version 8.2.12
+
+   
+    A dump/restore is not required for those running 8.2.X.
+    However, if you are upgrading from a version earlier than 8.2.11,
+    see the release notes for 8.2.11.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Improve handling of URLs in headline() function (Teodor)
+     
+    
+
+    
+     
+      Improve handling of overlength headlines in headline()
+      function (Teodor)
+     
+    
+
+    
+     
+      Prevent possible Assert failure or misconversion if an encoding
+      conversion is created with the wrong conversion function for the
+      specified pair of encodings (Tom, Heikki)
+     
+    
+
+    
+     
+      Fix possible Assert failure if a statement executed in PL/pgSQL is
+      rewritten into another kind of statement, for example if an
+      INSERT is rewritten into an UPDATE (Heikki)
+     
+    
+
+    
+     
+      Ensure that a snapshot is available to datatype input functions (Tom)
+     
+
+     
+      This primarily affects domains that are declared with CHECK
+      constraints involving user-defined stable or immutable functions.  Such
+      functions typically fail if no snapshot has been set.
+     
+    
+
+    
+     
+      Make it safer for SPI-using functions to be used within datatype I/O;
+      in particular, to be used in domain check constraints (Tom)
+     
+    
+
+    
+     
+      Avoid unnecessary locking of small tables in VACUUM
+      (Heikki)
+     
+    
+
+    
+     
+      Fix a problem that made UPDATE RETURNING tableoid
+      return zero instead of the correct OID (Tom)
+     
+    
+
+    
+     
+      Fix planner misestimation of selectivity when transitive equality
+      is applied to an outer-join clause (Tom)
+     
+
+     
+      This could result in bad plans for queries like
+      ... from a left join b on a.a1 = b.b1 where a.a1 = 42 ...
+     
+    
+
+    
+     
+      Improve optimizer's handling of long IN lists (Tom)
+     
+
+     
+      This change avoids wasting large amounts of time on such lists
+      when constraint exclusion is enabled.
+     
+    
+
+    
+     
+      Ensure that the contents of a holdable cursor don't depend on the
+      contents of TOAST tables (Tom)
+     
+
+     
+      Previously, large field values in a cursor result might be represented
+      as TOAST pointers, which would fail if the referenced table got dropped
+      before the cursor is read, or if the large value is deleted and then
+      vacuumed away.  This cannot happen with an ordinary cursor,
+      but it could with a cursor that is held past its creating transaction.
+     
+    
+
+    
+     
+      Fix memory leak when a set-returning function is terminated without
+      reading its whole result (Tom)
+     
+    
+
+    
+     
+      Fix contrib/dblink's
+      dblink_get_result(text,bool) function (Joe)
+     
+    
+
+    
+     
+      Fix possible garbage output from contrib/sslinfo functions
+      (Tom)
+     
+    
+
+    
+     
+      Fix configure script to properly report failure when
+      unable to obtain linkage information for PL/Perl (Andrew)
+     
+    
+
+    
+     
+      Make all documentation reference pgsql-bugs and/or
+      pgsql-hackers as appropriate, instead of the
+      now-decommissioned pgsql-ports and pgsql-patches
+      mailing lists (Tom)
+     
+    
+
+    
+     
+      Update time zone data files to tzdata release 2009a (for
+      Kathmandu and historical DST corrections in Switzerland, Cuba)
+     
+    
+
+   
+
+  
+
+  Release 8.2.11
+
+  
+  Release date
+  2008-11-03
+  
+
+  
+   This release contains a variety of fixes from 8.2.10.
+   For information about new features in the 8.2 major release, see
+   .
+  
+
+  
+   Migration to Version 8.2.11
+
+   
+    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.  Also, if you were running a previous
+    8.2.X release, it is recommended to REINDEX all GiST
+    indexes after the upgrade.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Fix GiST index corruption due to marking the wrong index entry
+      dead after a deletion (Teodor)
+     
+
+     
+      This would result in index searches failing to find rows they
+      should have found.  Corrupted indexes can be fixed with
+      REINDEX.
+     
+    
+
+    
+     
+      Fix backend crash when the client encoding cannot represent a localized
+      error message (Tom)
+     
+
+     
+      We have addressed similar issues before, but it would still fail if
+      the character has no equivalent message itself couldn't
+      be converted.  The fix is to disable localization and send the plain
+      ASCII error message when we detect such a situation.
+     
+    
+
+    
+     
+      Fix possible crash when deeply nested functions are invoked from
+      a trigger (Tom)
+     
+    
+
+    
+     
+      Improve optimization of expression IN
+      (expression-list) queries (Tom, per an idea from Robert
+      Haas)
+     
+
+     
+      Cases in which there are query variables on the right-hand side had been
+      handled less efficiently in 8.2.x and 8.3.x than in prior versions.
+      The fix restores 8.1 behavior for such cases.
+     
+    
+
+    
+     
+      Fix mis-expansion of rule queries when a sub-SELECT appears
+      in a function call in FROM,  a multi-row VALUES
+      list, or a RETURNING list (Tom)
+     
+
+     
+      The usual symptom of this problem is an unrecognized node type
+      error.
+     
+    
+
+    
+     
+      Fix memory leak during rescan of a hashed aggregation plan (Neil)
+     
+    
+
+    
+     
+      Ensure an error is reported when a newly-defined PL/pgSQL trigger
+      function is invoked as a normal function (Tom)
+     
+    
+
+    
+     
+      Prevent possible collision of relfilenode numbers
+      when moving a table to another tablespace with ALTER SET
+      TABLESPACE (Heikki)
+     
+
+     
+      The command tried to re-use the existing filename, instead of
+      picking one that is known unused in the destination directory.
+     
+    
+
+    
+     
+      Fix incorrect tsearch2 headline generation when single query
+      item matches first word of text (Sushant Sinha)
+     
+    
+
+    
+     
+      Fix improper display of fractional seconds in interval values when
+      using a non-ISO datestyle in an 
+      build (Ron Mayer)
+     
+    
+
+    
+     
+      Ensure SPI_getvalue and SPI_getbinval
+      behave correctly when the passed tuple and tuple descriptor have
+      different numbers of columns (Tom)
+     
+
+     
+      This situation is normal when a table has had columns added or removed,
+      but these two functions didn't handle it properly.
+      The only likely consequence is an incorrect error indication.
+     
+    
+
+    
+     
+      Fix ecpg's parsing of CREATE ROLE (Michael)
+     
+    
+
+    
+     
+      Fix recent breakage of pg_ctl restart (Tom)
+     
+    
+
+    
+     
+      Ensure pg_control is opened in binary mode
+      (Itagaki Takahiro)
+     
+
+     
+      pg_controldata and pg_resetxlog
+      did this incorrectly, and so could fail on Windows.
+     
+    
+
+    
+     
+      Update time zone data files to tzdata release 2008i (for
+      DST law changes in Argentina, Brazil, Mauritius, Syria)
+     
+    
+
+   
+
+  
+
+  Release 8.2.10
+
+  
+  Release date
+  2008-09-22
+  
+
+  
+   This release contains a variety of fixes from 8.2.9.
+   For information about new features in the 8.2 major release, see
+   .
+  
+
+  
+   Migration to Version 8.2.10
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Fix bug in btree WAL recovery code (Heikki)
+     
+
+     
+      Recovery failed if the WAL ended partway through a page split operation.
+     
+    
+
+    
+     
+      Fix potential miscalculation of datfrozenxid (Alvaro)
+     
+
+     
+      This error may explain some recent reports of failure to remove old
+      pg_clog data.
+     
+    
+
+    
+     
+      Widen local lock counters from 32 to 64 bits (Tom)
+     
+
+     
+      This responds to reports that the counters could overflow in
+      sufficiently long transactions, leading to unexpected lock is
+      already held errors.
+     
+    
+
+    
+     
+      Fix possible duplicate output of tuples during a GiST index scan (Teodor)
+     
+    
+
+    
+     
+      Fix missed permissions checks when a view contains a simple
+      UNION ALL construct (Heikki)
+     
+
+     
+      Permissions for the referenced tables were checked properly, but not
+      permissions for the view itself.
+     
+    
+
+    
+     
+      Add checks in executor startup to ensure that the tuples produced by an
+      INSERT or UPDATE will match the target table's
+      current rowtype (Tom)
+     
+
+     
+      ALTER COLUMN TYPE, followed by re-use of a previously
+      cached plan, could produce this type of situation.  The check protects
+      against data corruption and/or crashes that could ensue.
+     
+    
+
+    
+     
+      Fix possible repeated drops during DROP OWNED (Tom)
+     
+
+     
+      This would typically result in strange errors such as cache
+      lookup failed for relation NNN.
+     
+    
+
+    
+     
+      Fix AT TIME ZONE to first try to interpret its timezone
+      argument as a timezone abbreviation, and only try it as a full timezone
+      name if that fails, rather than the other way around as formerly (Tom)
+     
+
+     
+      The timestamp input functions have always resolved ambiguous zone names
+      in this order.  Making AT TIME ZONE do so as well improves
+      consistency, and fixes a compatibility bug introduced in 8.1:
+      in ambiguous cases we now behave the same as 8.0 and before did,
+      since in the older versions AT TIME ZONE accepted
+      only abbreviations.
+     
+    
+
+    
+     
+      Fix datetime input functions to correctly detect integer overflow when
+      running on a 64-bit platform (Tom)
+     
+    
+
+    
+     
+      Prevent integer overflows during units conversion when displaying a
+      configuration parameter that has units (Tom)
+     
+    
+
+    
+     
+      Improve performance of writing very long log messages to syslog (Tom)
+     
+    
+
+    
+     
+      Allow spaces in the suffix part of an LDAP URL in
+      pg_hba.conf (Tom)
+     
+    
+
+    
+     
+      Fix bug in backwards scanning of a cursor on a SELECT DISTINCT
+      ON query (Tom)
+     
+    
+
+    
+     
+      Fix planner bug with nested sub-select expressions (Tom)
+     
+
+     
+      If the outer sub-select has no direct dependency on the parent query,
+      but the inner one does, the outer value might not get recalculated
+      for new parent query rows.
+     
+    
+
+    
+     
+      Fix planner to estimate that GROUP BY expressions yielding
+      boolean results always result in two groups, regardless of the
+      expressions' contents (Tom)
+     
+
+     
+      This is very substantially more accurate than the regular GROUP
+      BY estimate for certain boolean tests like col
+      IS NULL.
+     
+    
+
+    
+     
+      Fix PL/PgSQL to not fail when a FOR loop's target variable
+      is a record containing composite-type fields (Tom)
+     
+    
+
+    
+     
+      Fix PL/Tcl to behave correctly with Tcl 8.5, and to be more careful
+      about the encoding of data sent to or from Tcl (Tom)
+     
+    
+
+    
+     
+      On Windows, work around a Microsoft bug by preventing
+      libpq from trying to send more than 64kB per system call
+      (Magnus)
+     
+    
+
+    
+     
+      Improve pg_dump and pg_restore's
+      error reporting after failure to send a SQL command (Tom)
+     
+    
+
+    
+     
+      Fix pg_ctl to properly preserve postmaster
+      command-line arguments across a restart (Bruce)
+     
+    
+
+    
+     
+      Update time zone data files to tzdata release 2008f (for
+      DST law changes in Argentina, Bahamas, Brazil, Mauritius, Morocco,
+      Pakistan, Palestine, and Paraguay)
+     
+    
+
+   
+
+  
+
+  Release 8.2.9
+
+  
+  Release date
+  2008-06-12
+  
+
+  
+   This release contains one serious and one minor bug fix over 8.2.8.
+   For information about new features in the 8.2 major release, see
+   .
+  
+
+  
+   Migration to Version 8.2.9
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Make pg_get_ruledef() parenthesize negative constants (Tom)
+     
+
+     
+      Before this fix, a negative constant in a view or rule might be dumped
+      as, say, -42::integer, which is subtly incorrect: it should
+      be (-42)::integer due to operator precedence rules.
+      Usually this would make little difference, but it could interact with
+      another recent patch to cause
+      PostgreSQL to reject what had been a valid
+      SELECT DISTINCT view query.  Since this could result in
+      pg_dump output failing to reload, it is being treated
+      as a high-priority fix.  The only released versions in which dump
+      output is actually incorrect are 8.3.1 and 8.2.7.
+     
+    
+
+    
+     
+      Make ALTER AGGREGATE ... OWNER TO update
+      pg_shdepend (Tom)
+     
+
+     
+      This oversight could lead to problems if the aggregate was later
+      involved in a DROP OWNED or REASSIGN OWNED
+      operation.
+     
+    
+
+   
+
+  
+
+  Release 8.2.8
+
+  
+  Release date
+  never released
+  
+
+  
+   This release contains a variety of fixes from 8.2.7.
+   For information about new features in the 8.2 major release, see
+   .
+  
+
+  
+   Migration to Version 8.2.8
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Fix ERRORDATA_STACK_SIZE exceeded crash that
+      occurred on Windows when using UTF-8 database encoding and a different
+      client encoding (Tom)
+     
+    
+
+    
+     
+      Fix 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)
+     
+
+     
+      Previous versions neglected to check this requirement at all.
+     
+    
+
+    
+     
+      Fix possible CREATE TABLE failure when inheriting the
+      same constraint from multiple parent relations that
+      inherited that constraint from a common ancestor (Tom)
+     
+    
+
+    
+     
+      Fix pg_get_ruledef() to show the alias, if any, attached
+      to the target table of an UPDATE or DELETE
+      (Tom)
+     
+    
+
+    
+     
+      Fix GIN bug that could result in a too many LWLocks
+      taken failure (Teodor)
+     
+    
+
+    
+     
+      Avoid possible crash when decompressing corrupted data
+      (Zdenek Kotala)
+     
+    
+
+    
+     
+      Repair two places where SIGTERM exit of a backend could leave corrupted
+      state in shared memory (Tom)
+     
+
+     
+      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.
+     
+    
+
+    
+     
+      Fix conversions between ISO-8859-5 and other encodings to handle
+      Cyrillic Yo characters (e and E with
+      two dots) (Sergey Burladyan)
+     
+    
+
+    
+     
+      Fix several datatype input functions, notably array_in(),
+      that were allowing unused bytes in their results to contain
+      uninitialized, unpredictable values (Tom)
+     
+
+     
+      This could lead to failures in which two apparently identical literal
+      values were not seen as equal, resulting in the parser complaining
+      about unmatched ORDER BY and DISTINCT
+      expressions.
+     
+    
+
+    
+     
+      Fix a corner case in regular-expression substring matching
+      (substring(string from
+      pattern)) (Tom)
+     
+
+     
+      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
+      substring('foo' from 'foo(bar)?').
+      This should return NULL, since (bar) isn't matched, but
+      it was mistakenly returning the whole-pattern match instead (ie,
+      foo).
+     
+    
+
+    
+     
+      Update time zone data files to tzdata release 2008c (for
+      DST law changes in Morocco, Iraq, Choibalsan, Pakistan, Syria, Cuba, and
+      Argentina/San_Luis)
+     
+    
+
+    
+     
+      Fix incorrect result from ecpg's
+      PGTYPEStimestamp_sub() function (Michael)
+     
+    
+
+    
+     
+      Fix broken GiST comparison function for contrib/tsearch2's
+      tsquery type (Teodor)
+     
+    
+
+    
+     
+      Fix possible crashes in contrib/cube functions (Tom)
+     
+    
+
+    
+     
+      Fix core dump in contrib/xml2's
+      xpath_table() function when the input query returns a
+      NULL value (Tom)
+     
+    
+
+    
+     
+      Fix contrib/xml2's makefile to not override
+      CFLAGS (Tom)
+     
+    
+
+    
+     
+      Fix DatumGetBool macro to not fail with gcc
+      4.3 (Tom)
+     
+
+     
+      This problem affects 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.
+     
+    
+
+   
+
+  
+
+  Release 8.2.7
+
+  
+  Release date
+  2008-03-17
+  
+
+  
+   This release contains a variety of fixes from 8.2.6.
+   For information about new features in the 8.2 major release, see
+   .
+  
+
+  
+   Migration to Version 8.2.7
+
+   
+    A dump/restore is not required for those running 8.2.X.
+    However, you might need to REINDEX indexes on textual
+    columns after updating, if you are affected by the Windows locale
+    issue described below.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Fix character string comparison for Windows locales that consider
+      different character combinations as equal (Tom)
+     
+
+     
+      This fix applies only on Windows and only when using UTF-8
+      database encoding.  The same fix was made for all other cases
+      over two years ago, but Windows with UTF-8 uses a separate code
+      path that was not updated.  If you are using a locale that
+      considers some non-identical strings as equal, you may need to
+      REINDEX to fix existing indexes on textual columns.
+     
+    
+
+    
+     
+      Repair potential deadlock between concurrent VACUUM FULL
+      operations on different system catalogs (Tom)
+     
+    
+
+    
+     
+      Fix longstanding LISTEN/NOTIFY
+      race condition (Tom)
+     
+
+     
+      In rare cases a session that had just executed a
+      LISTEN might not get a notification, even though
+      one would be expected because the concurrent transaction executing
+      NOTIFY was observed to commit later.
+     
+
+     
+      A side effect of the fix is that a transaction that has executed
+      a not-yet-committed LISTEN command will not see any
+      row in pg_listener for the 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.
+     
+    
+
+    
+     
+      Disallow LISTEN and UNLISTEN within a
+      prepared transaction (Tom)
+     
+
+     
+      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 UNLISTEN remained uncommitted.
+     
+    
+
+    
+     
+      Disallow dropping a temporary table within a
+      prepared transaction (Heikki)
+     
+
+     
+      This was correctly disallowed by 8.1, but the check was inadvertently
+      broken in 8.2.
+     
+    
+
+    
+     
+      Fix rare crash when an error occurs during a query using a hash index
+      (Heikki)
+     
+    
+
+    
+     
+      Fix memory leaks in certain usages of set-returning functions (Neil)
+     
+    
+
+    
+     
+      Fix input of datetime values for February 29 in years BC (Tom)
+     
+
+     
+      The former coding was mistaken about which years were leap years.
+     
+    
+
+    
+     
+      Fix unrecognized node type error in some variants of
+      ALTER OWNER (Tom)
+     
+    
+
+    
+     
+      Ensure pg_stat_activity.waiting flag
+      is cleared when a lock wait is aborted (Tom)
+     
+    
+
+    
+     
+      Fix handling of process permissions on Windows Vista (Dave, Magnus)
+     
+
+     
+      In particular, this fix allows starting the server as the Administrator
+      user.
+     
+    
+
+    
+     
+      Update time zone data files to tzdata release 2008a
+      (in particular, recent Chile changes); adjust timezone abbreviation
+      VET (Venezuela) to mean UTC-4:30, not UTC-4:00 (Tom)
+     
+    
+
+    
+     
+      Fix pg_ctl to correctly extract the postmaster's port
+      number from command-line options (Itagaki Takahiro, Tom)
+     
+
+     
+      Previously, pg_ctl start -w could try to contact the
+      postmaster on the wrong port, leading to bogus reports of startup
+      failure.
+     
+    
+
+    
+     
+      Use 
+      in recent gcc versions (Tom)
+     
+
+     
+      This is known to be necessary when building PostgreSQL
+      with gcc 4.3 or later.
+     
+    
+
+
+    
+     
+      Correctly enforce statement_timeout values longer
+      than INT_MAX microseconds (about 35 minutes) (Tom)
+     
+
+     
+      This bug affects only builds with 
+     
+    
+
+    
+     
+      Fix unexpected PARAM_SUBLINK ID planner error when
+      constant-folding simplifies a sub-select (Tom)
+     
+    
+
+    
+     
+      Fix logical errors in constraint-exclusion handling of IS
+      NULL and NOT expressions (Tom)
+     
+
+     
+      The planner would sometimes exclude partitions that should not
+      have been excluded because of the possibility of NULL results.
+     
+    
+
+    
+     
+      Fix another cause of failed to build any N-way joins
+      planner errors (Tom)
+     
+
+     
+      This could happen in cases where a clauseless join needed to be
+      forced before a join clause could be exploited.
+     
+    
+
+    
+     
+      Fix incorrect constant propagation in outer-join planning (Tom)
+     
+
+     
+      The planner could sometimes incorrectly conclude that a variable
+      could be constrained to be equal to a constant, leading
+      to wrong query results.
+     
+    
+
+    
+     
+      Fix display of constant expressions in ORDER BY
+      and GROUP BY (Tom)
+     
+
+     
+      An explictly casted constant would be shown incorrectly.  This could
+      for example lead to corruption of a view definition during
+      dump and reload.
+     
+    
+
+    
+     
+      Fix libpq to handle NOTICE messages correctly
+      during COPY OUT (Tom)
+     
+
+     
+      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.
+     
+    
+
+   
+
+  
+
+  Release 8.2.6
+
+  
+  Release date
+  2008-01-07
+  
+
+  
+   This release contains a variety of fixes from 8.2.5,
+   including fixes for significant security issues.
+   For information about new features in the 8.2 major release, see
+   .
+  
+
+  
+   Migration to Version 8.2.6
+
+   
+    A dump/restore is not required for those running 8.2.X.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Prevent functions in indexes from executing with the privileges of
+      the user running VACUUM, ANALYZE, etc (Tom)
+     
+
+     
+      Functions used in index expressions and partial-index
+      predicates are evaluated whenever a new table entry is made.  It has
+      long been understood that this poses a risk of trojan-horse code
+      execution if one modifies a table owned by an untrustworthy user.
+      (Note that triggers, defaults, check constraints, etc. pose the
+      same type of risk.)  But functions in indexes pose extra danger
+      because they will be executed by routine maintenance operations
+      such as VACUUM FULL, which are commonly performed
+      automatically under a superuser account.  For example, a nefarious user
+      can execute code with superuser privileges by setting up a
+      trojan-horse index definition and waiting for the next routine vacuum.
+      The fix arranges for standard maintenance operations
+      (including VACUUM, ANALYZE, REINDEX,
+      and CLUSTER) to execute as the table owner rather than
+      the calling user, using the same privilege-switching mechanism already
+      used for SECURITY DEFINER functions.  To prevent bypassing
+      this security measure, execution of SET SESSION
+      AUTHORIZATION and SET ROLE is now forbidden within a
+      SECURITY DEFINER context.  (CVE-2007-6600)
+     
+    
+
+    
+     
+      Repair assorted bugs in the regular-expression package (Tom, Will Drewry)
+     
+
+     
+      Suitably crafted regular-expression patterns could cause crashes,
+      infinite or near-infinite looping, and/or massive memory consumption,
+      all of which pose denial-of-service hazards for applications that
+      accept regex search patterns from untrustworthy sources.
+      (CVE-2007-4769, CVE-2007-4772, CVE-2007-6067)
+     
+    
+
+    
+     
+      Require non-superusers who use /contrib/dblink to use only
+      password authentication, as a security measure (Joe)
+     
+
+     
+      The fix that appeared for this in 8.2.5 was incomplete, as it plugged
+      the hole for only some dblink functions.  (CVE-2007-6601,
+      CVE-2007-3278)
+     
+    
+
+    
+     
+      Fix bugs in WAL replay for GIN indexes (Teodor)
+     
+    
+
+    
+     
+      Fix GIN index build to work properly when
+      maintenance_work_mem is 4GB or more (Tom)
+     
+    
+
+    
+     
+      Update time zone data files to tzdata release 2007k
+      (in particular, recent Argentina changes) (Tom)
+     
+    
+
+    
+     
+      Improve planner's handling of LIKE/regex estimation in non-C locales
+      (Tom)
+     
+    
+
+    
+     
+      Fix planning-speed problem for deep outer-join nests, as well as
+      possible poor choice of join order (Tom)
+     
+    
+
+    
+     
+      Fix planner failure in some cases of WHERE false AND var IN
+      (SELECT ...) (Tom)
+     
+    
+
+    
+     
+      Make CREATE TABLE ... SERIAL and
+      ALTER SEQUENCE ... OWNED BY not change the
+      currval() state of the sequence (Tom)
+     
+    
+
+    
+     
+      Preserve the tablespace and storage parameters of indexes that are
+      rebuilt by ALTER TABLE ... ALTER COLUMN TYPE (Tom)
+     
+    
+
+    
+     
+      Make archive recovery always start a new WAL timeline, rather than only
+      when a recovery stop time was used (Simon)
+     
+
+     
+      This avoids a corner-case risk of trying to overwrite an existing
+      archived copy of the last WAL segment, and seems simpler and cleaner
+      than the original definition.
+     
+    
+
+    
+     
+      Make VACUUM not use all of maintenance_work_mem
+      when the table is too small for it to be useful (Alvaro)
+     
+    
+
+    
+     
+      Fix potential crash in translate() when using a multibyte
+      database encoding (Tom)
+     
+    
+
+    
+     
+      Make corr() return the correct result for negative
+      correlation values (Neil)
+     
+    
+
+    
+     
+      Fix overflow in extract(epoch from interval) for intervals
+      exceeding 68 years (Tom)
+     
+    
+
+    
+     
+      Fix PL/Perl to not fail when a UTF-8 regular expression is used
+      in a trusted function (Andrew)
+     
+    
+
+    
+     
+      Fix PL/Perl to cope when platform's Perl defines type bool
+      as int rather than char (Tom)
+     
+
+     
+      While this could theoretically happen anywhere, no standard build of
+      Perl did things this way ... until Mac OS X 10.5.
+     
+    
+
+    
+     
+      Fix PL/Python to work correctly with Python 2.5 on 64-bit machines
+      (Marko Kreen)
+     
+    
+
+    
+     
+      Fix PL/Python to not crash on long exception messages (Alvaro)
+     
+    
+
+    
+     
+      Fix pg_dump to correctly handle inheritance child tables
+      that have default expressions different from their parent's (Tom)
+     
+    
+
+    
+     
+      Fix libpq crash when PGPASSFILE refers
+      to a file that is not a plain file (Martin Pitt)
+     
+    
+
+    
+     
+      ecpg parser fixes (Michael)
+     
+    
+
+    
+     
+      Make contrib/pgcrypto defend against
+      OpenSSL libraries that fail on keys longer than 128
+      bits; which is the case at least on some Solaris versions (Marko Kreen)
+     
+    
+
+    
+     
+      Make contrib/tablefunc's crosstab() handle
+      NULL rowid as a category in its own right, rather than crashing (Joe)
+     
+    
+
+    
+     
+      Fix tsvector and tsquery output routines to
+      escape backslashes correctly (Teodor, Bruce)
+     
+    
+
+    
+     
+      Fix crash of to_tsvector() on huge input strings (Teodor)
+     
+    
+
+    
+     
+      Require a specific version of Autoconf to be used
+      when re-generating the configure script (Peter)
+     
+
+     
+      This affects developers and packagers only.  The change was made
+      to prevent accidental use of untested combinations of
+      Autoconf and PostgreSQL versions.
+      You can remove the version check if you really want to use a
+      different Autoconf version, but it's
+      your responsibility whether the result works or not.
+     
+    
+
+    
+     
+      Update gettimeofday configuration check so that
+      PostgreSQL can be built on newer versions of
+      MinGW (Magnus)
+     
+    
+
+   
+
+  
+
+  Release 8.2.5
+
+  
+  Release date
+  2007-09-17
+  
+
+  
+   This release contains a variety of fixes from 8.2.4.
+   For information about new features in the 8.2 major release, see
+   .
+  
+
+  
+   Migration to Version 8.2.5
+
+   
+    A dump/restore is not required for those running 8.2.X.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Prevent index corruption when a transaction inserts rows and
+      then aborts close to the end of a concurrent VACUUM
+      on the same table (Tom)
+     
+    
+
+    
+     
+      Fix ALTER DOMAIN ADD CONSTRAINT for cases involving
+      domains over domains (Tom)
+     
+    
+
+    
+     
+      Make CREATE DOMAIN ... DEFAULT NULL work properly (Tom)
+     
+    
+
+    
+     
+      Fix some planner problems with outer joins, notably poor
+      size estimation for t1 LEFT JOIN t2 WHERE t2.col IS NULL
+      (Tom)
+     
+    
+
+    
+     
+      Allow the interval data type to accept input consisting only of
+      milliseconds or microseconds (Neil)
+     
+    
+
+    
+     
+      Allow timezone name to appear before the year in timestamp input (Tom)
+     
+    
+
+    
+     
+      Fixes for GIN indexes used by /contrib/tsearch2 (Teodor)
+     
+    
+
+    
+     
+      Speed up rtree index insertion (Teodor)
+     
+    
+
+    
+     
+      Fix excessive logging of SSL error messages (Tom)
+     
+    
+
+    
+     
+      Fix logging so that log messages are never interleaved when using
+      the syslogger process (Andrew)
+     
+    
+
+    
+     
+      Fix crash when log_min_error_statement logging runs out
+      of memory (Tom)
+     
+    
+
+    
+     
+      Fix incorrect handling of some foreign-key corner cases (Tom)
+     
+    
+
+    
+     
+      Fix stddev_pop(numeric) and var_pop(numeric) (Tom)
+     
+    
+
+    
+     
+      Prevent REINDEX and CLUSTER from failing
+      due to attempting to process temporary tables of other sessions (Alvaro)
+     
+    
+
+    
+     
+      Update the time zone database rules, particularly New Zealand's upcoming changes (Tom)
+     
+    
+
+    
+     
+      Windows socket and semaphore improvements (Magnus)
+     
+    
+
+    
+     
+      Make pg_ctl -w work properly in Windows service mode (Dave Page)
+     
+    
+
+    
+     
+      Fix memory allocation bug when using MIT Kerberos on Windows (Magnus)
+     
+    
+
+    
+     
+      Suppress timezone name (%Z) in log timestamps on Windows
+      because of possible encoding mismatches (Tom)
+     
+    
+
+    
+     
+      Require non-superusers who use /contrib/dblink to use only
+      password authentication, as a security measure (Joe)
+     
+    
+
+    
+     
+      Restrict /contrib/pgstattuple functions to superusers, for security reasons (Tom)
+     
+    
+
+    
+     
+      Do not let /contrib/intarray try to make its GIN opclass
+      the default (this caused problems at dump/restore) (Tom)
+     
+    
+
+   
+
+  
+
+  Release 8.2.4
+
+  
+  Release date
+  2007-04-23
+  
+
+  
+   This release contains a variety of fixes from 8.2.3,
+   including a security fix.
+   For information about new features in the 8.2 major release, see
+   .
+  
+
+  
+   Migration to Version 8.2.4
+
+   
+    A dump/restore is not required for those running 8.2.X.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Support explicit placement of the temporary-table schema within
+      search_path, and disable searching it for functions
+      and operators (Tom)
+     
+
+     
+      This is needed to allow a security-definer function to set a
+      truly secure value of search_path.  Without it,
+      an unprivileged SQL user can use temporary objects to execute code
+      with the privileges of the security-definer function (CVE-2007-2138).
+      See CREATE FUNCTION for more information.
+     
+    
+
+    
+     
+      Fix shared_preload_libraries for Windows
+      by forcing reload in each backend (Korry Douglas)
+     
+    
+
+    
+     
+      Fix to_char() so it properly upper/lower cases localized day or month
+      names (Pavel Stehule)
+     
+    
+
+    
+     
+      /contrib/tsearch2 crash fixes (Teodor)
+     
+    
+
+    
+     
+      Require COMMIT PREPARED to be executed in the same
+      database as the transaction was prepared in (Heikki)
+     
+    
+
+    
+     
+      Allow pg_dump to do binary backups larger than two gigabytes
+      on Windows (Magnus)
+     
+    
+
+    
+     
+      New traditional (Taiwan) Chinese FAQ (Zhou Daojing)
+     
+    
+
+    
+     
+      Prevent the statistics collector from writing to disk too frequently (Tom)
+     
+    
+
+    
+     
+      Fix potential-data-corruption bug in how VACUUM FULL handles
+      UPDATE chains (Tom, Pavan Deolasee)
+     
+    
+
+    
+     
+      Fix bug in domains that use array types (Tom)
+     
+    
+
+    
+     
+      Fix pg_dump so it can dump a serial column's sequence
+      using 
+      (Tom)
+     
+    
+
+    
+     
+      Planner fixes, including improving outer join and bitmap scan
+      selection logic (Tom)
+     
+    
+
+    
+     
+      Fix possible wrong answers or crash when a PL/pgSQL function tries
+      to RETURN from within an EXCEPTION block
+      (Tom)
+     
+    
+
+    
+     
+      Fix PANIC during enlargement of a hash index (Tom)
+     
+    
+
+    
+     
+      Fix POSIX-style timezone specs to follow new USA DST rules (Tom)
+     
+    
+
+   
+
+  
+
+  Release 8.2.3
+
+  
+  Release date
+  2007-02-07
+  
+
+  
+   This release contains two fixes from 8.2.2.
+   For information about new features in the 8.2 major release, see
+   .
+  
+
+  
+   Migration to Version 8.2.3
+
+   
+    A dump/restore is not required for those running 8.2.X.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Remove overly-restrictive check for type length in constraints and
+      functional indexes(Tom)
+     
+    
+
+    
+     
+      Fix optimization so MIN/MAX in subqueries can again use indexes (Tom)
+     
+    
+
+   
+
+  
+
+  Release 8.2.2
+
+  
+  Release date
+  2007-02-05
+  
+
+  
+   This release contains a variety of fixes from 8.2.1, including
+   a security fix.
+   For information about new features in the 8.2 major release, see
+   .
+  
+
+  
+   Migration to Version 8.2.2
+
+   
+    A dump/restore is not required for those running 8.2.X.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Remove security vulnerabilities that allowed connected users
+      to read backend memory (Tom)
+     
+
+     
+      The vulnerabilities involve suppressing the normal check that a SQL
+      function returns the data type it's declared to, and changing the
+      data type of a table column (CVE-2007-0555, CVE-2007-0556).  These
+      errors 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.
+     
+    
+
+    
+     
+      Fix not-so-rare-anymore bug wherein btree index page splits could fail
+      due to choosing an infeasible split point (Heikki Linnakangas)
+     
+    
+
+    
+     
+      Fix Borland C compile scripts (L Bayuk)
+     
+    
+
+    
+     
+      Properly handle to_char('CC') for years ending in
+      00 (Tom)
+     
+
+     
+      Year 2000 is in the twentieth century, not the twenty-first.
+     
+    
+
+    
+     
+      /contrib/tsearch2 localization improvements (Tatsuo, Teodor)
+     
+    
+
+    
+     
+      Fix incorrect permission check in
+      information_schema.key_column_usage view (Tom)
+     
+
+     
+      The symptom is relation with OID nnnnn does not exist errors.
+      To get this fix without using initdb, use CREATE OR
+      REPLACE VIEW to install the corrected definition found in
+      share/information_schema.sql.  Note you will need to do
+      this in each database.
+     
+    
+
+    
+     
+      Improve VACUUM performance for databases with many tables (Tom)
+     
+    
+
+    
+     
+      Fix for rare Assert() crash triggered by UNION (Tom)
+     
+    
+
+    
+     
+      Fix potentially incorrect results from index searches using
+      ROW inequality conditions (Tom)
+     
+    
+
+    
+     
+      Tighten security of multi-byte character processing for UTF8 sequences
+      over three bytes long (Tom)
+     
+    
+
+    
+     
+      Fix bogus permission denied failures occurring on Windows
+      due to attempts to fsync already-deleted files (Magnus, Tom)
+     
+    
+
+    
+     
+      Fix bug that could cause the statistics collector
+      to hang on Windows (Magnus)
+     
+
+     
+      This would in turn lead to autovacuum not working.
+     
+    
+
+    
+     
+      Fix possible crashes when an already-in-use PL/pgSQL function is
+      updated (Tom)
+     
+    
+
+    
+     
+      Improve PL/pgSQL handling of domain types (Sergiy Vyshnevetskiy, Tom)
+     
+    
+
+    
+     
+      Fix possible errors in processing PL/pgSQL exception blocks (Tom)
+     
+    
+
+   
+
+  
+
+  Release 8.2.1
+
+  
+  Release date
+  2007-01-08
+  
+
+  
+   This release contains a variety of fixes from 8.2.
+   For information about new features in the 8.2 major release, see
+   .
+  
+
+  
+   Migration to Version 8.2.1
+
+   
+    A dump/restore is not required for those running 8.2.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Fix crash with SELECT ... LIMIT ALL (also
+      LIMIT NULL) (Tom)
+     
+    
+
+    
+     
+      Several /contrib/tsearch2 fixes (Teodor)
+     
+    
+
+    
+     
+      On Windows, make log messages coming from the operating system use
+      ASCII encoding (Hiroshi Saito)
+     
+
+     
+      This fixes a conversion problem when there is a mismatch between
+      the encoding of the operating system and database server.
+     
+    
+
+    
+     
+      Fix Windows linking of pg_dump using
+      win32.mak
+      (Hiroshi Saito)
+     
+    
+
+    
+     
+      Fix planner mistakes for outer join queries (Tom)
+     
+    
+
+    
+     
+      Fix several problems in queries involving sub-SELECTs (Tom)
+     
+    
+
+    
+     
+      Fix potential crash in SPI during subtransaction abort (Tom)
+     
+
+     
+      This affects all PL functions since they all use SPI.
+     
+    
+
+    
+     
+      Improve build speed of PDF documentation (Peter)
+     
+    
+
+    
+     
+      Re-add JST (Japan) timezone abbreviation (Tom)
+     
+    
+
+    
+     
+      Improve optimization decisions related to index scans (Tom)
+     
+    
+
+    
+     
+      Have psql print multi-byte combining characters as
+      before, rather than output as \u (Tom)
+     
+    
+
+    
+     
+      Improve index usage of regular expressions that use parentheses (Tom)
+     
+
+     
+      This improves psql \d performance also.
+     
+    
+
+    
+     
+      Make pg_dumpall assume that databases have public
+      CONNECT privilege, when dumping from a pre-8.2 server (Tom)
+     
+
+     
+      This preserves the previous behavior that anyone can connect to a
+      database if allowed by pg_hba.conf.
+     
+    
+
+   
+
+  
+
+  Release 8.2
+
+  
+   Release date
+   2006-12-05
+  
+
+  
+   Overview
+
+   
+    This release adds many functionality and performance improvements that
+    were requested by users, including:
+
+   
+
+     
+      
+       Query language enhancements including INSERT/UPDATE/DELETE
+       RETURNING, multirow VALUES lists, and
+       optional target-table alias in
+       UPDATE/DELETE
+      
+     
+
+     
+      
+       Index creation without blocking concurrent
+       INSERT/UPDATE/DELETE
+       operations
+      
+     
+
+     
+      
+       Many query optimization improvements, including support for
+       reordering outer joins
+      
+     
+
+     
+      
+       Improved sorting performance with lower memory usage
+      
+     
+
+     
+      
+       More efficient locking with better concurrency
+      
+     
+
+     
+      
+       More efficient vacuuming
+      
+     
+
+     
+      
+       Easier administration of warm standby servers
+      
+     
+
+     
+      
+       New FILLFACTOR support for tables and indexes
+      
+     
+
+     
+      
+       Monitoring, logging, and performance tuning additions
+      
+     
+
+     
+      
+       More control over creating and dropping objects
+      
+     
+
+     
+      
+       Table inheritance relationships can be defined
+       for and removed from pre-existing tables
+      
+     
+
+     
+      
+       COPY TO can copy the output of an arbitrary
+       SELECT statement
+      
+     
+
+     
+      
+       Array improvements, including nulls in arrays
+      
+     
+
+     
+      
+       Aggregate-function improvements, including multiple-input
+       aggregates and SQL:2003 statistical functions
+      
+     
+
+     
+      
+       Many contrib/ improvements
+      
+     
+
+    
+
+   
+
+  
+
+  
+   Migration to Version 8.2
+
+   
+    A dump/restore using pg_dump is
+    required for those wishing to migrate data from any previous
+    release.
+   
+
+   
+    Observe the following incompatibilities:
+   
+
+   
+
+     
+      
+       Set 
+       linkend="guc-escape-string-warning">escape_string_warning
+       to on by default (Bruce)
+      
+
+      
+       This issues a warning if backslash escapes are used in
+       non-escape (non-E'')
+       strings.
+      
+     
+
+     
+      
+       Change the row
+       constructor syntax (ROW(...)) so that
+       list elements foo.* will be expanded to a list
+       of their member fields, rather than creating a nested
+       row type field as formerly (Tom)
+      
+
+      
+       The new behavior is substantially more useful since it
+       allows, for example, triggers to check for data changes
+       with IF row(new.*) IS DISTINCT FROM row(old.*).
+       The old behavior is still available by omitting .*.
+      
+     
+
+     
+      
+       Make row comparisons
+       follow SQL standard semantics and allow them
+       to be used in index scans (Tom)
+      
+
+      
+       Previously, row = and <> comparisons followed the
+       standard but < <= > >= did not.  A row comparison
+       can now be used as an index constraint for a multicolumn
+       index matching the row value.
+      
+     
+
+     
+      
+       Make row IS NOT NULL
+       tests follow SQL standard semantics (Tom)
+      
+
+      
+       The former behavior conformed to the standard for simple cases
+       with IS NULL, but IS NOT NULL would return
+       true if any row field was non-null, whereas the standard says it
+       should return true only when all fields are non-null.
+      
+     
+
+     
+      
+       Make SET
+       CONSTRAINT affect only one constraint (Kris Jurka)
+      
+
+      
+       In previous releases, SET CONSTRAINT modified
+       all constraints with a matching name.  In this release,
+       the schema search path is used to modify only the first
+       matching constraint.  A schema specification is also
+       supported.  This more nearly conforms to the SQL standard.
+      
+     
+
+     
+      
+       Remove RULE permission for tables, for security reasons
+       (Tom)
+      
+
+      
+       As of this release, only a table's owner can create or modify
+       rules for the table.  For backwards compatibility,
+       GRANT/REVOKE RULE is still accepted,
+       but it does nothing.
+      
+     
+
+     
+      
+       Array comparison improvements (Tom)
+      
+
+      
+       Now array dimensions are also compared.
+      
+     
+
+     
+      
+       Change array concatenation
+       to match documented behavior (Tom)
+      
+
+      
+       This changes the previous behavior where concatenation
+       would modify the array lower bound.
+      
+     
+
+     
+      
+       Make command-line options of postmaster
+       and postgres
+       identical (Peter)
+      
+
+      
+       This allows the postmaster to pass arguments to each backend
+       without using -o.  Note that some options are now
+       only available as long-form options, because there were conflicting
+       single-letter options.
+      
+     
+
+     
+      
+       Deprecate use of postmaster symbolic link (Peter)
+      
+
+      
+       postmaster and postgres
+       commands now act identically, with the behavior determined
+       by command-line options.  The postmaster symbolic link is
+       kept for compatibility, but is not really needed.
+      
+     
+
+     
+      
+       Change 
+       linkend="guc-log-duration">log_duration
+       to output even if the query is not output (Tom)
+      
+
+      
+       In prior releases, log_duration only printed if
+       the query appeared earlier in the log.
+      
+     
+
+     
+      
+       Make 
+       linkend="functions-formatting">to_char(time)
+       and 
+       linkend="functions-formatting">to_char(interval)
+       treat HH and HH12 as 12-hour
+       intervals
+      
+
+      
+       Most applications should use HH24 unless they
+       want a 12-hour display.
+      
+     
+
+     
+      
+       Zero unmasked bits in conversion from 
+       linkend="datatype-inet">INET to 
+       linkend="datatype-inet">CIDR (Tom)
+      
+
+      
+       This ensures that the converted value is actually valid for
+       CIDR.
+      
+     
+
+     
+      
+       Remove australian_timezones configuration variable
+       (Joachim Wieland)
+      
+
+      
+       This variable has been superseded by a more general facility
+       for configuring timezone abbreviations.
+      
+     
+
+     
+      
+       Improve cost estimation for nested-loop index scans (Tom)
+      
+
+      
+       This might eliminate the need to set unrealistically small
+       values of 
+       linkend="guc-random-page-cost">random_page_cost.
+       If you have been using a very small random_page_cost,
+       please recheck your test cases.
+      
+     
+
+     
+      
+       Change behavior of pg_dump -n and
+       -t options.  (Greg Sabino Mullane)
+      
+      
+       See the pg_dump manual page for details.
+      
+     
+
+     
+      
+       Change libpq
+       PQdsplen() to return a useful value (Martijn
+       van Oosterhout)
+      
+     
+
+     
+      
+       Declare libpq
+       PQgetssl() as returning void *,
+       rather than SSL * (Martijn van Oosterhout)
+      
+
+      
+       This allows applications to use the function without including
+       the OpenSSL headers.
+      
+     
+
+     
+      
+       C-language loadable modules must now include a
+       PG_MODULE_MAGIC
+       macro call for version compatibility checking
+       (Martijn van Oosterhout)
+      
+     
+
+     
+      
+       For security's sake, modules used by a PL/PerlU function are no
+       longer available to PL/Perl functions (Andrew)
+      
+      
+       
+        This also implies that data can no longer be shared between a PL/Perl
+        function and a PL/PerlU function.
+        Some Perl installations have not been compiled with the correct flags
+        to allow multiple interpreters to exist within a single process.
+        In this situation PL/Perl and PL/PerlU cannot both be used in a
+        single backend. The solution is to get a Perl installation which
+        supports multiple interpreters.
+       
+      
+     
+
+     
+      
+       In contrib/xml2/, rename xml_valid() to
+       xml_is_well_formed() (Tom)
+      
+
+      
+       xml_valid() will remain for backward compatibility,
+       but its behavior will change to do schema checking in a future
+       release.
+      
+     
+
+     
+      
+       Remove contrib/ora2pg/, now at 
+       url="http://www.samse.fr/GPL/ora2pg">
+      
+     
+
+     
+      
+       Remove contrib modules that have been migrated to PgFoundry:
+       adddepend, dbase, dbmirror,
+       fulltextindex, mac, userlock
+      
+     
+
+     
+      
+       Remove abandoned contrib modules:
+       mSQL-interface, tips
+      
+     
+
+     
+      
+       Remove QNX and BEOS ports (Bruce)
+      
+
+      
+       These ports no longer had active maintainers.
+      
+     
+
+   
+  
+
+  
+   Changes
+
+   
+    Below you will find a detailed account of the
+    changes between PostgreSQL 8.2 and
+    the previous major release.
+   
+
+   
+    Performance Improvements
+    
+
+     
+      
+       Allow the planner to reorder outer
+       joins in some circumstances (Tom)
+      
+
+      
+       In previous releases, outer joins would always be evaluated in
+       the order written in the query. This change allows the
+       query optimizer to consider reordering outer joins, in cases where
+       it can determine that the join order can be changed without
+       altering the meaning of the query.  This can make a
+       considerable performance difference for queries involving
+       multiple outer joins or mixed inner and outer joins.
+      
+     
+
+     
+      
+       Improve efficiency of 
+       linkend="functions-comparisons">IN
+       (list-of-expressions) clauses (Tom)
+      
+     
+
+     
+      
+       Improve sorting speed and reduce memory usage (Simon, Tom)
+      
+     
+
+     
+      
+       Improve subtransaction performance (Alvaro, Itagaki Takahiro,
+       Tom)
+      
+     
+
+     
+      
+       Add FILLFACTOR to 
+       linkend="SQL-CREATETABLE">table and 
+       linkend="SQL-CREATEINDEX">index creation (ITAGAKI
+       Takahiro)
+      
+
+      
+       This leaves extra free space in each table or index page,
+       allowing improved performance as the database grows.  This
+       is particularly valuable to maintain clustering.
+      
+     
+
+     
+      
+       Increase default values for 
+       linkend="guc-shared-buffers">shared_buffers
+       and max_fsm_pages
+       (Andrew)
+      
+     
+
+     
+      
+       Improve locking performance by breaking the lock manager tables into
+       sections
+       (Tom)
+      
+
+      
+       This allows locking to be more fine-grained, reducing
+       contention.
+      
+     
+
+     
+      
+       Reduce locking requirements of sequential scans (Qingqing
+       Zhou)
+      
+     
+
+     
+      
+       Reduce locking required for database creation and destruction
+       (Tom)
+      
+     
+
+     
+      
+       Improve the optimizer's selectivity estimates for 
+       linkend="functions-like">LIKE, 
+       linkend="functions-like">ILIKE, and
+       regular expression
+       operations (Tom)
+      
+     
+
+     
+      
+       Improve planning of joins to inherited
+       tables and UNION
+       ALL views (Tom)
+      
+     
+
+     
+      
+       Allow constraint
+       exclusion to be applied to 
+       linkend="ddl-inherit">inherited UPDATE and
+       DELETE queries (Tom)
+      
+
+      
+       SELECT already honored constraint exclusion.
+      
+     
+
+     
+      
+       Improve planning of constant WHERE clauses, such as
+       a condition that depends only on variables inherited from an
+       outer query level (Tom)
+      
+     
+
+     
+      
+       Protocol-level unnamed prepared statements are re-planned
+       for each set of BIND values (Tom)
+      
+
+      
+       This improves performance because the exact parameter values
+       can be used in the plan.
+      
+     
+
+     
+      
+       Speed up vacuuming of B-Tree indexes (Heikki Linnakangas,
+       Tom)
+      
+     
+
+     
+      
+       Avoid extra scan of tables without indexes during 
+       linkend="SQL-VACUUM">VACUUM (Greg Stark)
+      
+     
+
+     
+      
+       Improve multicolumn GiST
+       indexing (Oleg, Teodor)
+      
+     
+
+     
+      
+       Remove dead index entries before B-Tree page split (Junji
+       Teramoto)
+      
+     
+
+    
+
+   
+
+   
+    Server Changes
+    
+
+     
+      
+       Allow a forced switch to a new transaction log file (Simon, Tom)
+      
+
+      
+       This is valuable for keeping warm standby slave servers
+       in sync with the master.  Transaction log file switching now also happens
+       automatically during 
+       linkend="functions-admin">pg_stop_backup().
+       This ensures that all
+       transaction log files needed for recovery can be archived immediately.
+      
+     
+
+     
+      
+       Add WAL informational functions (Simon)
+      
+
+      
+       Add functions for interrogating the current transaction log insertion
+       point and determining WAL filenames from the
+       hex WAL locations displayed by 
+       linkend="functions-admin">pg_stop_backup()
+       and related functions.
+      
+     
+
+     
+      
+       Improve recovery from a crash during WAL replay (Simon)
+      
+
+      
+       The server now does periodic checkpoints during WAL
+       recovery, so if there is a crash, future WAL
+       recovery is shortened.  This also eliminates the need for
+       warm standby servers to replay the entire log since the
+       base backup if they crash.
+      
+     
+
+     
+      
+       Improve reliability of long-term WAL replay
+       (Heikki, Simon, Tom)
+      
+
+      
+       Formerly, trying to roll forward through more than 2 billion
+       transactions would not work due to XID wraparound.  This meant
+       warm standby servers had to be reloaded
+       from fresh base backups periodically.
+      
+     
+
+     
+      
+       Add 
+       linkend="guc-archive-timeout">archive_timeout
+       to force transaction log file switches at a given interval (Simon)
+      
+
+      
+       This enforces a maximum replication delay for warm standby servers.
+      
+     
+
+     
+      
+       Add native LDAP
+       authentication (Magnus Hagander)
+      
+
+      
+       This is particularly useful for platforms that do not
+       support PAM, such as Windows.
+      
+     
+
+     
+      
+       Add GRANT
+       CONNECT ON DATABASE (Gevik Babakhani)
+      
+
+      
+       This gives SQL-level control over database access.  It works as
+       an additional filter on top of the existing
+       pg_hba.conf
+       controls.
+      
+     
+
+     
+      
+       Add support for SSL
+       Certificate Revocation List (CRL) files
+       (Libor Hohoš)
+      
+
+      
+       The server and libpq both recognize CRL
+       files now.
+      
+     
+
+     
+      
+       GiST indexes are
+       now clusterable (Teodor)
+      
+     
+
+     
+      
+       Remove routine autovacuum server log entries (Bruce)
+      
+
+      
+       
+       linkend="monitoring-stats-views-table">pg_stat_activity
+       now shows autovacuum activity.
+      
+     
+
+     
+      
+       Track maximum XID age within individual tables, instead of whole databases (Alvaro)
+      
+
+      
+       This reduces the overhead involved in preventing transaction
+       ID wraparound, by avoiding unnecessary VACUUMs.
+      
+     
+
+     
+      
+       Add last vacuum and analyze timestamp columns to the stats
+       collector (Larry Rosenman)
+      
+
+      
+       These values now appear in the 
+       linkend="monitoring-stats-views-table">pg_stat_*_tables
+       system views.
+      
+     
+
+     
+      
+       Improve performance of statistics monitoring, especially
+       stats_command_string
+       (Tom, Bruce)
+      
+
+      
+       This release enables stats_command_string by
+       default, now that its overhead is minimal.  This means
+       
+       linkend="monitoring-stats-views-table">pg_stat_activity
+       will now show all active queries by default.
+      
+     
+
+     
+      
+       Add a waiting column to 
+       linkend="monitoring-stats-views-table">pg_stat_activity
+       (Tom)
+      
+
+      
+       This allows pg_stat_activity to show all the
+       information included in the ps display.
+      
+     
+
+     
+      
+       Add configuration parameter 
+       linkend="guc-update-process-title">update_process_title
+       to control whether the ps display is updated
+       for every command (Bruce)
+      
+
+      
+       On platforms where it is expensive to update the ps
+       display, it might be worthwhile to turn this off and rely solely on
+       pg_stat_activity for status information.
+      
+     
+
+     
+      
+       Allow units to be specified in configuration settings
+       (Peter)
+      
+
+      
+       For example, you can now set 
+       linkend="guc-shared-buffers">shared_buffers
+       to 32MB rather than mentally converting sizes.
+      
+     
+
+     
+      
+       Add support for include
+       directives in postgresql.conf (Joachim
+       Wieland)
+      
+     
+
+     
+      
+       Improve logging of protocol-level prepare/bind/execute
+       messages (Bruce, Tom)
+      
+
+      
+       Such logging now shows statement names, bind parameter
+       values, and the text of the query being executed.  Also,
+       the query text is properly included in logged error messages
+       when enabled by log_min_error_statement.
+      
+     
+
+     
+      
+       Prevent 
+       linkend="guc-max-stack-depth">max_stack_depth
+       from being set to unsafe values
+      
+
+      
+       On platforms where we can determine the actual kernel stack depth
+       limit (which is most), make sure that the initial default value of
+       max_stack_depth is safe, and reject attempts to set it
+       to unsafely large values.
+      
+     
+
+     
+      
+       Enable highlighting of error location in query in more
+       cases (Tom)
+      
+
+      
+       The server is now able to report a specific error location for
+       some semantic errors (such as unrecognized column name), rather
+       than just for basic syntax errors as before.
+      
+     
+
+     
+      
+       Fix failed to re-find parent key errors in
+       VACUUM (Tom)
+      
+     
+
+     
+      
+       Clean out pg_internal.init cache files during server
+       restart (Simon)
+      
+
+      
+       This avoids a hazard that the cache files might contain stale
+       data after PITR recovery.
+      
+     
+
+     
+      
+       Fix race condition for truncation of a large relation across a
+       gigabyte boundary by VACUUM (Tom)
+      
+     
+
+     
+      
+       Fix bug causing needless deadlock errors on row-level locks (Tom)
+      
+     
+
+     
+      
+       Fix bugs affecting multi-gigabyte hash indexes (Tom)
+      
+     
+
+     
+      
+       Each backend process is now its own process group leader (Tom)
+      
+
+      
+       This allows query cancel to abort subprocesses invoked from a
+       backend or archive/recovery process.
+      
+     
+
+    
+
+   
+
+   
+    Query Changes
+    
+
+     
+      
+       Add INSERT/
+       linkend="SQL-UPDATE">UPDATE/
+       linkend="SQL-DELETE">DELETE
+       RETURNING (Jonah Harris, Tom)
+      
+
+      
+       This allows these commands to return values, such as the
+       computed serial key for a new row.  In the UPDATE
+       case, values from the updated version of the row are returned.
+      
+     
+
+     
+      
+       Add support for multiple-row 
+       linkend="queries-values">VALUES clauses,
+       per SQL standard (Joe, Tom)
+      
+
+      
+       This allows INSERT to insert multiple rows of
+       constants, or queries to generate result sets using constants.
+       For example, INSERT ...  VALUES (...), (...),
+       ...., and SELECT * FROM (VALUES (...), (...),
+       ....) AS alias(f1, ...).
+      
+     
+
+     
+      
+       Allow UPDATE
+       and DELETE
+       to use an alias for the target table (Atsushi Ogawa)
+      
+
+      
+       The SQL standard does not permit an alias in these commands, but
+       many database systems allow one anyway for notational convenience.
+      
+     
+
+     
+      
+       Allow UPDATE
+       to set multiple columns with a list of values (Susanne
+       Ebrecht)
+      
+
+      
+       This is basically a short-hand for assigning the columns
+       and values in pairs.  The syntax is UPDATE tab
+       SET (column, ...) = (val, ...).
+      
+     
+
+     
+      
+       Make row comparisons work per standard (Tom)
+      
+
+      
+       The forms <, <=, >, >= now compare rows lexicographically,
+       that is, compare the first elements, if equal compare the second
+       elements, and so on.  Formerly they expanded to an AND condition
+       across all the elements, which was neither standard nor very useful.
+      
+     
+
+     
+      
+       Add CASCADE
+       option to TRUNCATE (Joachim Wieland)
+      
+
+      
+       This causes TRUNCATE to automatically include all tables
+       that reference the specified table(s) via foreign keys.  While
+       convenient, this is a dangerous tool — use with caution!
+      
+     
+
+     
+      
+       Support FOR UPDATE and FOR SHARE
+       in the same SELECT
+       command (Tom)
+      
+     
+
+     
+      
+       Add IS NOT
+       DISTINCT FROM (Pavel Stehule)
+      
+
+      
+       This operator is similar to equality (=), but
+       evaluates to true when both left and right operands are
+       NULL, and to false when just one is, rather than
+       yielding NULL in these cases.
+      
+     
+
+     
+      
+       Improve the length output used by 
+       linkend="queries-union">UNION/INTERSECT/EXCEPT
+       (Tom)
+      
+
+      
+       When all corresponding columns are of the same defined length, that
+       length is used for the result, rather than a generic length.
+      
+     
+
+     
+      
+       Allow ILIKE
+       to work for multi-byte encodings (Tom)
+      
+
+      
+       Internally, ILIKE now calls lower()
+       and then uses LIKE.  Locale-specific regular
+       expression patterns still do not work in these encodings.
+      
+     
+
+     
+      
+       Enable 
+       linkend="guc-standard-conforming-strings">standard_conforming_strings
+       to be turned on (Kevin Grittner)
+      
+
+      
+       This allows backslash escaping in strings to be disabled,
+       making PostgreSQL more
+       standards-compliant.  The default is off for backwards
+       compatibility, but future releases will default this to on.
+      
+     
+
+     
+      
+       Do not flatten subqueries that contain volatile
+       functions in their target lists (Jaime Casanova)
+      
+
+      
+       This prevents surprising behavior due to multiple evaluation
+       of a volatile function (such as random()
+       or nextval()).  It might cause performance
+       degradation in the presence of functions that are unnecessarily
+       marked as volatile.
+      
+     
+
+     
+      
+       Add system views 
+       linkend="view-pg-prepared-statements">pg_prepared_statements
+       and 
+       linkend="view-pg-cursors">pg_cursors
+       to show prepared statements and open cursors (Joachim Wieland, Neil)
+      
+
+      
+       These are very useful in pooled connection setups.
+      
+     
+
+     
+      
+       Support portal parameters in 
+       linkend="SQL-EXPLAIN">EXPLAIN and 
+       linkend="SQL-EXECUTE">EXECUTE (Tom)
+      
+
+      
+       This allows, for example, JDBC ? parameters to
+       work in these commands.
+      
+     
+
+     
+      
+       If SQL-level 
+       linkend="SQL-PREPARE">PREPARE parameters
+       are unspecified, infer their types from the content of the
+       query (Neil)
+      
+
+      
+       Protocol-level PREPARE already did this.
+      
+     
+
+     
+      
+       Allow LIMIT and OFFSET to exceed
+       two billion (Dhanaraj M)
+      
+     
+
+    
+
+   
+
+   
+    Object Manipulation Changes
+    
+
+     
+      
+       Add TABLESPACE clause to 
+       linkend="SQL-CREATETABLEAS">CREATE TABLE AS
+       (Neil)
+      
+
+      
+       This allows a tablespace to be specified for the new table.
+      
+     
+
+     
+      
+       Add ON COMMIT clause to 
+       linkend="SQL-CREATETABLEAS">CREATE TABLE AS
+       (Neil)
+      
+
+      
+       This allows temporary tables to be truncated or dropped on
+       transaction commit.  The default behavior is for the table
+       to remain until the session ends.
+      
+     
+
+     
+      
+       Add INCLUDING CONSTRAINTS to 
+       linkend="SQL-CREATETABLE">CREATE TABLE LIKE
+       (Greg Stark)
+      
+
+      
+       This allows easy copying of CHECK constraints to a new
+       table.
+      
+     
+
+     
+      
+       Allow the creation of placeholder (shell) 
+       linkend="SQL-CREATETYPE">types (Martijn van Oosterhout)
+      
+
+      
+       A shell type declaration creates a type name, without specifying
+       any of the details of the type.  Making a shell type is useful
+       because it allows cleaner declaration of the type's input/output
+       functions, which must exist before the type can be defined for
+       real.  The syntax is CREATE TYPE 
+       class="parameter">typename.
+      
+     
+
+     
+      
+       Aggregate functions
+       now support multiple input parameters (Sergey Koposov, Tom)
+      
+     
+
+     
+      
+       Add new aggregate creation 
+       linkend="SQL-CREATEAGGREGATE">syntax (Tom)
+      
+
+      
+       The new syntax is CREATE AGGREGATE
+       aggname (input_type)
+       (parameter_list).  This more
+       naturally supports the new multi-parameter aggregate
+       functionality.  The previous syntax is still supported.
+      
+     
+
+     
+      
+       Add 
+       linkend="SQL-ALTERROLE">ALTER ROLE PASSWORD NULL
+       to remove a previously set role password (Peter)
+      
+     
+
+     
+      
+       Add DROP object IF EXISTS for many
+       object types (Andrew)
+      
+
+      
+       This allows DROP operations on non-existent
+       objects without generating an error.
+      
+     
+
+     
+      
+       Add DROP OWNED
+       to drop all objects owned by a role (Alvaro)
+      
+     
+
+     
+      
+       Add REASSIGN
+       OWNED to reassign ownership of all objects owned
+       by a role (Alvaro)
+      
+
+      
+       This, and DROP OWNED above, facilitate dropping
+       roles.
+      
+     
+
+     
+      
+       Add GRANT ON SEQUENCE
+       syntax (Bruce)
+      
+
+      
+       This was added for setting sequence-specific permissions.
+       GRANT ON TABLE for sequences is still supported
+       for backward compatibility.
+      
+     
+
+     
+      
+       Add USAGE
+       permission for sequences that allows only currval()
+       and nextval(), not setval()
+       (Bruce)
+      
+
+      
+       USAGE permission allows more fine-grained
+       control over sequence access.  Granting USAGE
+       allows users to increment
+       a sequence, but prevents them from setting the sequence to
+       an arbitrary value using setval().
+      
+     
+
+     
+      
+       Add ALTER TABLE
+       [ NO ] INHERIT (Greg Stark)
+      
+
+      
+       This allows inheritance to be adjusted dynamically, rather than
+       just at table creation and destruction.  This is very valuable
+       when using inheritance to implement table partitioning.
+      
+     
+
+     
+      
+       Allow comments on global
+       objects to be stored globally (Kris Jurka)
+      
+
+      
+       Previously, comments attached to databases were stored in individual
+       databases, making them ineffective, and there was no provision
+       at all for comments on roles or tablespaces.  This change adds a new
+       shared catalog 
+       linkend="catalog-pg-shdescription">pg_shdescription
+       and stores comments on databases, roles, and tablespaces therein.
+      
+     
+
+    
+
+   
+
+   
+    Utility Command Changes
+    
+
+     
+      
+       Add option to allow indexes to be created without blocking
+       concurrent writes to the table (Greg Stark, Tom)
+      
+
+      
+       The new syntax is CREATE
+       INDEX CONCURRENTLY.  The default behavior is
+       still to block table modification while a index is being
+       created.
+      
+     
+
+     
+      
+       Provide advisory
+       locking functionality (Abhijit Menon-Sen, Tom)
+      
+
+      
+       This is a new locking API designed to replace what used to be
+       in /contrib/userlock.  The userlock code is now on pgfoundry.
+      
+     
+
+     
+      
+       Allow COPY to
+       dump a SELECT query (Zoltan Boszormenyi, Karel
+       Zak)
+      
+
+      
+       This allows COPY to dump arbitrary SQL
+       queries. The syntax is COPY (SELECT ...) TO.
+      
+     
+
+     
+      
+       Make the COPY
+       command return a command tag that includes the number of
+       rows copied (Volkan YAZICI)
+      
+     
+
+     
+      
+       Allow VACUUM
+       to expire rows without being affected by other concurrent
+       VACUUM operations (Hannu Krossing, Alvaro, Tom)
+      
+     
+
+     
+      
+       Make initdb
+       detect the operating system locale and set the default
+       DateStyle accordingly (Peter)
+      
+
+      
+       This makes it more likely that the installed
+       postgresql.conf DateStyle value will
+       be as desired.
+      
+     
+
+     
+      
+       Reduce number of progress messages displayed by initdb (Tom)
+      
+     
+
+    
+
+   
+
+   
+    Date/Time Changes
+    
+
+     
+      
+       Allow full timezone names in 
+       linkend="datatype-datetime">timestamp input values
+       (Joachim Wieland)
+      
+
+      
+       For example, '2006-05-24 21:11
+       America/New_York'::timestamptz.
+      
+     
+
+     
+      
+       Support configurable timezone abbreviations (Joachim Wieland)
+      
+
+      
+       A desired set of timezone abbreviations can be chosen via the
+       configuration parameter 
+       linkend="guc-timezone-abbreviations">timezone_abbreviations.
+      
+     
+
+     
+      
+       Add 
+       linkend="view-pg-timezone-abbrevs">pg_timezone_abbrevs
+       and 
+       linkend="view-pg-timezone-names">pg_timezone_names
+       views to show supported timezones (Magnus Hagander)
+      
+     
+
+     
+      
+       Add 
+       linkend="functions-datetime-table">clock_timestamp(),
+       
+       linkend="functions-datetime-table">statement_timestamp(),
+       and 
+       linkend="functions-datetime-table">transaction_timestamp()
+       (Bruce)
+      
+
+      
+       clock_timestamp() is the current wall-clock time,
+       statement_timestamp() is the time the current
+       statement arrived at the server, and
+       transaction_timestamp() is an alias for
+       now().
+      
+     
+
+     
+      
+       Allow 
+       linkend="functions-formatting">to_char()
+       to print localized month and day names (Euler Taveira de
+       Oliveira)
+      
+     
+
+     
+      
+       Allow 
+       linkend="functions-formatting">to_char(time)
+       and 
+       linkend="functions-formatting">to_char(interval)
+       to output AM/PM specifications
+       (Bruce)
+      
+
+      
+       Intervals and times are treated as 24-hour periods, e.g.
+       25 hours is considered AM.
+      
+     
+
+     
+      
+       Add new function 
+       linkend="functions-datetime-table">justify_interval()
+       to adjust interval units (Mark Dilger)
+      
+     
+
+     
+      
+       Allow timezone offsets up to 14:59 away from GMT
+      
+
+      
+       Kiribati uses GMT+14, so we'd better accept that.
+      
+     
+
+     
+      
+       Interval computation improvements (Michael Glaesemann, Bruce)
+      
+     
+
+    
+
+   
+
+   
+    Other Data Type and Function Changes
+    
+
+     
+      
+       Allow arrays to contain NULL elements (Tom)
+      
+     
+
+     
+      
+       Allow assignment to array elements not contiguous with the existing
+       entries (Tom)
+      
+
+      
+       The intervening array positions will be filled with nulls.
+       This is per SQL standard.
+      
+     
+
+     
+      
+       New built-in operators
+       for array-subset comparisons (@>,
+       <@, &&) (Teodor, Tom)
+      
+
+      
+       These operators can be indexed for many data types using
+       GiST or GIN indexes.
+      
+     
+
+     
+      
+       Add convenient arithmetic 
+       linkend="cidr-inet-operators-table">operations on
+       INET/CIDR values (Stephen R. van den
+       Berg)
+      
+
+      
+       The new operators are & (and), |
+       (or), ~ (not), inet int8,
+       inet int8, and
+       inet inet.
+      
+     
+
+     
+      
+       Add new 
+       linkend="functions-aggregate-statistics-table">aggregate functions
+       from SQL:2003 (Neil)
+      
+
+      
+       The new functions are var_pop(),
+       var_samp(), stddev_pop(), and
+       stddev_samp().  var_samp() and
+       stddev_samp() are merely renamings of the
+       existing aggregates variance() and
+       stddev().  The latter names remain available
+       for backward compatibility.
+      
+     
+
+     
+      
+       Add SQL:2003 statistical 
+       linkend="functions-aggregate-statistics-table">aggregates
+       (Sergey Koposov)
+      
+
+      
+       New functions:  regr_intercept(),
+       regr_slope(), regr_r2(),
+       corr(), covar_samp(),
+       covar_pop(), regr_avgx(),
+       regr_avgy(), regr_sxy(),
+       regr_sxx(), regr_syy(),
+       regr_count().
+      
+     
+
+     
+      
+       Allow domains to be
+       based on other domains (Tom)
+      
+     
+
+     
+      
+       Properly enforce domain 
+       linkend="ddl-constraints">CHECK constraints
+       everywhere (Neil, Tom)
+      
+
+      
+       For example, the result of a user-defined function that is
+       declared to return a domain type is now checked against the
+       domain's constraints. This closes a significant hole in the domain
+       implementation.
+      
+     
+
+     
+      
+       Fix problems with dumping renamed 
+       linkend="datatype-serial">SERIAL columns
+       (Tom)
+      
+
+      
+       The fix is to dump a SERIAL column by explicitly
+       specifying its DEFAULT and sequence elements,
+       and reconstructing the SERIAL column on reload
+       using a new ALTER
+       SEQUENCE OWNED BY command.  This also allows
+       dropping a SERIAL column specification.
+      
+     
+
+     
+      
+       Add a server-side sleep function 
+       linkend="functions-datetime-delay">pg_sleep()
+       (Joachim Wieland)
+      
+     
+
+     
+      
+       Add all comparison operators for the 
+       linkend="datatype-oid">tid (tuple id) data
+       type (Mark Kirkwood, Greg Stark, Tom)
+      
+     
+
+    
+
+   
+
+   
+    PL/PgSQL Server-Side Language Changes
+    
+
+     
+      
+       Add TG_table_name and TG_table_schema to
+       trigger parameters (Andrew)
+      
+
+      
+       TG_relname is now deprecated.  Comparable
+       changes have been made in the trigger parameters for the other
+       PLs as well.
+      
+     
+
+     
+      
+       Allow FOR statements to return values to scalars
+       as well as records and row types (Pavel Stehule)
+      
+     
+
+     
+      
+       Add a BY clause to the FOR loop,
+       to control the iteration increment (Jaime Casanova)
+      
+     
+
+     
+      
+       Add STRICT to 
+       linkend="plpgsql-statements-sql-onerow">SELECT
+       INTO (Matt Miller)
+      
+
+      
+       STRICT mode throws an exception if more or less
+       than one row is returned by the SELECT, for
+       Oracle PL/SQL compatibility.
+      
+     
+
+    
+
+   
+
+   
+    PL/Perl Server-Side Language Changes
+    
+
+     
+      
+       Add table_name and table_schema to
+       trigger parameters (Adam Sjøgren)
+      
+     
+
+     
+      
+       Add prepared queries (Dmitry Karasik)
+      
+     
+
+     
+      
+       Make $_TD trigger data a global variable (Andrew)
+      
+
+      
+       Previously, it was lexical, which caused unexpected sharing
+       violations.
+      
+     
+
+     
+      
+       Run PL/Perl and PL/PerlU in separate interpreters, for security
+       reasons (Andrew)
+      
+      
+       In consequence, they can no longer share data nor loaded modules.
+       Also, if Perl has not been compiled with the requisite flags to
+       allow multiple interpreters, only one of these languages can be used
+       in any given backend process.
+      
+     
+
+    
+
+   
+
+   
+    PL/Python Server-Side Language Changes
+    
+
+     
+      
+       Named parameters are passed as ordinary variables, as well as in the
+       args[] array (Sven Suursoho)
+      
+     
+
+     
+      
+       Add table_name and table_schema to
+       trigger parameters (Andrew)
+      
+     
+
+     
+      
+       Allow returning of composite types and result sets (Sven Suursoho)
+      
+     
+
+     
+      
+       Return result-set as list, iterator,
+       or generator (Sven Suursoho)
+      
+     
+
+     
+      
+       Allow functions to return void (Neil)
+      
+     
+
+     
+      
+       Python 2.5 is now supported (Tom)
+      
+     
+
+    
+
+   
+
+   
+    <link linkend="APP-PSQL"><application>psql</></link> Changes
+    
+
+     
+      
+       Add new command \password for changing role
+       password with client-side password encryption (Peter)
+      
+     
+
+     
+      
+       Allow \c to connect to a new host and port
+       number (David, Volkan YAZICI)
+      
+     
+
+     
+      
+       Add tablespace display to \l+ (Philip Yarra)
+      
+     
+
+     
+      
+       Improve \df slash command to include the argument
+       names and modes (OUT or INOUT) of
+       the function (David Fetter)
+      
+     
+
+     
+      
+       Support binary COPY (Andreas Pflug)
+      
+     
+
+     
+      
+       Add option to run the entire session in a single transaction
+       (Simon)
+      
+
+      
+       Use option -1 or --single-transaction.
+      
+     
+
+     
+      
+       Support for automatically retrieving SELECT
+       results in batches using a cursor (Chris Mair)
+      
+
+      
+       This is enabled using \set FETCH_COUNT
+       n. This
+       feature allows large result sets to be retrieved in
+       psql without attempting to buffer the entire
+       result set in memory.
+      
+     
+
+     
+      
+       Make multi-line values align in the proper column
+       (Martijn van Oosterhout)
+      
+
+      
+       Field values containing newlines are now displayed in a more
+       readable fashion.
+      
+     
+
+     
+      
+       Save multi-line statements as a single entry, rather than
+       one line at a time (Sergey E. Koposov)
+      
+
+      
+       This makes up-arrow recall of queries easier.  (This is
+       not available on Windows, because that platform uses the native
+       command-line editing present in the operating system.)
+      
+     
+
+     
+      
+       Make the line counter 64-bit so it can handle files with more
+       than two billion lines (David Fetter)
+      
+     
+
+     
+      
+       Report both the returned data and the command status tag
+       for INSERT/UPDATE/DELETE
+       RETURNING (Tom)
+      
+     
+
+    
+
+   
+
+   
+    <link linkend="APP-PGDUMP"><application>pg_dump</></link> Changes
+    
+
+     
+      
+       Allow complex selection of objects to be included or excluded
+       by pg_dump (Greg Sabino Mullane)
+      
+
+      
+       pg_dump now supports multiple -n
+       (schema) and -t (table) options, and adds
+       -N and -T options to exclude objects.
+       Also, the arguments of these switches can now be wild-card expressions
+       rather than single object names, for example
+       -t 'foo*', and a schema can be part of
+       a -t or -T switch, for example
+       -t schema1.table1.
+      
+     
+
+     
+      
+       Add pg_restore
+       --no-data-for-failed-tables option to suppress
+       loading data if table creation failed (i.e., the table already
+       exists) (Martin Pitt)
+      
+     
+
+     
+      
+       Add pg_restore
+       option to run the entire session in a single transaction
+       (Simon)
+      
+
+      
+       Use option -1 or --single-transaction.
+      
+     
+
+    
+
+   
+
+   
+    <link linkend="libpq"><application>libpq</></link> Changes
+    
+
+     
+      
+       Add 
+       linkend="libpq-misc">PQencryptPassword()
+       to encrypt passwords (Tom)
+      
+
+      
+       This allows passwords to be sent pre-encrypted for commands
+       like ALTER ROLE ...
+       PASSWORD.
+      
+     
+
+     
+      
+       Add function 
+       linkend="libpq-threading">PQisthreadsafe()
+       (Bruce)
+      
+
+      
+       This allows applications to query the thread-safety status
+       of the library.
+      
+     
+
+     
+      
+       Add 
+       linkend="libpq-exec-main">PQdescribePrepared(),
+       
+       linkend="libpq-exec-main">PQdescribePortal(),
+       and related functions to return information about previously
+       prepared statements and open cursors (Volkan YAZICI)
+      
+     
+
+     
+      
+       Allow LDAP lookups
+       from 
+       linkend="libpq-pgservice">pg_service.conf
+       (Laurenz Albe)
+      
+     
+
+     
+      
+       Allow a hostname in 
+       linkend="libpq-pgpass">~/.pgpass
+       to match the default socket directory (Bruce)
+      
+
+      
+       A blank hostname continues to match any Unix-socket connection,
+       but this addition allows entries that are specific to one of
+       several postmasters on the machine.
+      
+     
+
+    
+
+   
+
+   
+    <link linkend="ecpg"><application>ecpg</></link> Changes
+    
+
+     
+      
+       Allow SHOW to
+       put its result into a variable (Joachim Wieland)
+      
+     
+
+     
+      
+       Add COPY TO STDOUT
+       (Joachim Wieland)
+      
+     
+
+     
+      
+       Add regression tests (Joachim Wieland, Michael)
+      
+     
+
+     
+      
+       Major source code cleanups (Joachim Wieland, Michael)
+      
+     
+
+    
+
+   
+
+   
+    <application>Windows</> Port
+    
+
+     
+      
+       Allow MSVC to compile the PostgreSQL
+       server (Magnus, Hiroshi Saito)
+      
+     
+
+     
+      
+       Add MSVC support for utility commands and 
+       linkend="APP-PGDUMP">pg_dump (Hiroshi
+       Saito)
+      
+     
+
+     
+      
+       Add support for Windows code pages 1253,
+       1254, 1255, and 1257
+       (Kris Jurka)
+      
+     
+
+     
+      
+       Drop privileges on startup, so that the server can be started from
+       an administrative account (Magnus)
+      
+     
+
+     
+      
+       Stability fixes (Qingqing Zhou, Magnus)
+      
+     
+
+     
+      
+       Add native semaphore implementation (Qingqing Zhou)
+      
+
+      
+       The previous code mimicked SysV semaphores.
+      
+     
+
+    
+
+   
+
+   
+    Source Code Changes
+    
+
+     
+      
+       Add GIN (Generalized
+       Inverted iNdex) index access method (Teodor, Oleg)
+      
+     
+
+     
+      
+       Remove R-tree indexing (Tom)
+      
+
+      
+       Rtree has been re-implemented using 
+       linkend="GiST">GiST. Among other
+       differences, this means that rtree indexes now have support
+       for crash recovery via write-ahead logging (WAL).
+      
+     
+
+     
+      
+       Reduce libraries needlessly linked into the backend (Martijn
+       van Oosterhout, Tom)
+      
+     
+
+     
+      
+       Add a configure flag to allow libedit to be preferred over
+       GNU readline (Bruce)
+      
+
+      
+       Use configure 
+       linkend="configure">--with-libedit-preferred.
+      
+     
+
+     
+      
+       Allow installation into directories containing spaces
+       (Peter)
+      
+     
+
+     
+      
+       Improve ability to relocate installation directories (Tom)
+      
+     
+
+     
+      
+       Add support for Solaris x86_64 using the
+       Solaris compiler (Pierre Girard, Theo
+       Schlossnagle, Bruce)
+      
+     
+
+     
+      
+       Add DTrace support (Robert Lor)
+      
+     
+
+     
+      
+       Add PG_VERSION_NUM for use by third-party
+       applications wanting to test the backend version in C using >
+       and < comparisons (Bruce)
+      
+     
+
+     
+      
+       Add XLOG_BLCKSZ as independent from BLCKSZ
+       (Mark Wong)
+      
+     
+
+     
+      
+       Add LWLOCK_STATS define to report locking
+       activity (Tom)
+      
+     
+
+     
+      
+       Emit warnings for unknown configure options
+       (Martijn van Oosterhout)
+      
+     
+
+     
+      
+       Add server support for plugin libraries
+       that can be used for add-on tasks such as debugging and performance
+       measurement (Korry Douglas)
+      
+
+      
+       This consists of two features: a table of rendezvous
+       variables that allows separately-loaded shared libraries to
+       communicate, and a new configuration parameter 
+       linkend="guc-local-preload-libraries">local_preload_libraries
+       that allows libraries to be loaded into specific sessions without
+       explicit cooperation from the client application.  This allows
+       external add-ons to implement features such as a PL/PgSQL debugger.
+      
+     
+
+     
+      
+       Rename existing configuration parameter
+       preload_libraries to 
+       linkend="guc-shared-preload-libraries">shared_preload_libraries
+       (Tom)
+      
+
+      
+       This was done for clarity in comparison to
+       local_preload_libraries.
+      
+     
+
+     
+      
+       Add new configuration parameter 
+       linkend="guc-server-version-num">server_version_num
+       (Greg Sabino Mullane)
+      
+
+      
+       This is like server_version, but is an
+       integer, e.g.  80200. This allows applications to
+       make version checks more easily.
+      
+     
+
+     
+      
+       Add a configuration parameter 
+       linkend="guc-seq-page-cost">seq_page_cost
+       (Tom)
+      
+     
+
+     
+      
+       Re-implement the regression test script as a C program
+       (Magnus, Tom)
+      
+     
+
+     
+      
+       Allow loadable modules to allocate shared memory and
+       lightweight locks (Marc Munro)
+      
+     
+
+     
+      
+       Add automatic initialization and finalization of dynamically
+       loaded libraries (Ralf Engelschall, Tom)
+      
+
+      
+       New functions
+       _PG_init() and _PG_fini() are
+       called if the library defines such symbols.  Hence we no
+       longer need to specify an initialization function in
+       shared_preload_libraries; we can assume that
+       the library used the _PG_init() convention
+       instead.
+      
+     
+
+     
+      
+       Add 
+       linkend="xfunc-c-dynload">PG_MODULE_MAGIC
+       header block to all shared object files (Martijn van
+       Oosterhout)
+      
+
+      
+       The magic block prevents version mismatches between loadable object
+       files and servers.
+      
+     
+
+     
+      
+        Add shared library support for AIX (Laurenz Albe)
+      
+     
+
+     
+      
+       New XML
+       documentation section (Bruce)
+      
+     
+
+    
+
+   
+
+   
+    Contrib Changes
+    
+
+     
+      
+       Major tsearch2 improvements (Oleg, Teodor)
+      
+
+      
+
+       
+        
+         multibyte encoding support, including UTF8
+        
+       
+       
+        
+         query rewriting support
+        
+       
+       
+        
+         improved ranking functions
+        
+       
+       
+        
+         thesaurus dictionary support
+        
+       
+       
+        
+         Ispell dictionaries now recognize MySpell
+         format, used by OpenOffice
+        
+       
+       
+        
+         GIN support
+        
+       
+
+      
+
+     
+
+     
+      
+       Add adminpack module containing Pgadmin administration
+       functions (Dave)
+      
+
+      
+       These functions provide additional file system access
+       routines not present in the default PostgreSQL
+       server.
+      
+     
+
+     
+      
+       Add sslinfo module (Victor Wagner)
+      
+
+      
+       Reports information about the current connection's SSL
+       certificate.
+      
+     
+
+     
+      
+       Add pgrowlocks module (Tatsuo)
+      
+
+      
+       This shows row locking information for a specified table.
+      
+     
+
+     
+      
+       Add hstore module (Oleg, Teodor)
+      
+     
+
+     
+      
+       Add isn module, replacing isbn_issn (Jeremy Kronuz)
+      
+
+      
+       This new implementation supports EAN13, UPC,
+       ISBN (books), ISMN (music), and
+       ISSN (serials).
+      
+     
+
+     
+      
+       Add index information functions to pgstattuple (ITAGAKI Takahiro,
+       Satoshi Nagayasu)
+      
+     
+
+     
+      
+       Add pg_freespacemap module to display free space map information
+       (Mark Kirkwood)
+      
+     
+
+     
+      
+       pgcrypto now has all planned functionality (Marko Kreen)
+      
+      
+       
+        
+         Include iMath library in pgcrypto to have the public-key encryption
+         functions always available.
+        
+       
+       
+        
+         Add SHA224 algorithm that was missing in OpenBSD code.
+        
+       
+       
+        
+         Activate builtin code for SHA224/256/384/512 hashes on older
+         OpenSSL to have those algorithms always available.
+        
+       
+       
+        
+         New function gen_random_bytes() that returns cryptographically strong
+         randomness.  Useful for generating encryption keys.
+        
+       
+       
+        
+         Remove digest_exists(), hmac_exists() and cipher_exists() functions.
+        
+       
+      
+     
+
+     
+      
+       Improvements to cube module (Joshua Reich)
+      
+
+      
+       New functions are cube(float[]),
+       cube(float[], float[]), and
+       cube_subset(cube, int4[]).
+      
+     
+
+     
+      
+       Add async query capability to dblink (Kai Londenberg,
+       Joe Conway)
+      
+     
+
+     
+      
+       New operators for array-subset comparisons (@>,
+       <@, &&) (Tom)
+      
+
+      
+       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.)
+      
+     
+
+     
+      
+       Add uninstall scripts for all contrib packages that have install
+       scripts (David, Josh Drake)
+      
+     
+
+    
+
+   
+
+  
diff --git a/doc/src/sgml/release-8.3.sgml b/doc/src/sgml/release-8.3.sgml
new file mode 100644 (file)
index 0000000..dd16cd3
--- /dev/null
@@ -0,0 +1,4481 @@
+
+
+
+  Release 8.3.7
+
+  
+  Release date
+  2009-03-16
+  
+
+  
+   This release contains a variety of fixes from 8.3.6.
+   For information about new features in the 8.3 major release, see
+   .
+  
+
+  
+   Migration to Version 8.3.7
+
+   
+    A dump/restore is not required for those running 8.3.X.
+    However, if you are upgrading from a version earlier than 8.3.5,
+    see the release notes for 8.3.5.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Prevent error recursion crashes when encoding conversion fails (Tom)
+     
+
+     
+      This change extends fixes made in the last two minor releases for
+      related failure scenarios.  The previous fixes were narrowly tailored
+      for the original problem reports, but we have now recognized that
+      any error thrown by an encoding conversion function could
+      potentially lead to infinite recursion while trying to report the
+      error.  The solution therefore is to disable translation and encoding
+      conversion and report the plain-ASCII form of any error message,
+      if we find we have gotten into a recursive error reporting situation.
+      (CVE-2009-0922)
+     
+    
+
+    
+     
+      Disallow CREATE CONVERSION with the wrong encodings
+      for the specified conversion function (Heikki)
+     
+
+     
+      This prevents one possible scenario for encoding conversion failure.
+      The previous change is a backstop to guard against other kinds of
+      failures in the same area.
+     
+    
+
+    
+     
+      Fix xpath() to not modify the path expression unless
+      necessary, and to make a saner attempt at it when necessary (Andrew)
+     
+
+     
+      The SQL standard suggests that xpath should work on data
+      that is a document fragment, but libxml doesn't support
+      that, and indeed it's not clear that this is sensible according to the
+      XPath standard.  xpath attempted to work around this
+      mismatch by modifying both the data and the path expression, but the
+      modification was buggy and could cause valid searches to fail.  Now,
+      xpath checks whether the data is in fact a well-formed
+      document, and if so invokes libxml with no change to the
+      data or path expression.  Otherwise, a different modification method
+      that is somewhat less likely to fail is used.
+     
+
+     
+      
+       The new modification method is still not 100% satisfactory, and it
+       seems likely that no real solution is possible.  This patch should
+       therefore be viewed as a band-aid to keep from breaking existing
+       applications unnecessarily.  It is likely that
+       PostgreSQL 8.4 will simply reject use of
+       xpath on data that is not a well-formed document.
+      
+     
+    
+
+    
+     
+      Fix core dump when to_char() is given format codes that
+      are inappropriate for the type of the data argument (Tom)
+     
+    
+
+    
+     
+      Fix possible failure in text search when C locale is used with
+      a multi-byte encoding (Teodor)
+     
+
+     
+      Crashes were possible on platforms where wchar_t is narrower
+      than int; Windows in particular.
+     
+    
+
+    
+     
+      Fix extreme inefficiency in text search parser's handling of an
+      email-like string containing multiple @ characters (Heikki)
+     
+    
+
+    
+     
+      Fix planner problem with sub-SELECT in the output list
+      of a larger subquery (Tom)
+     
+
+     
+      The known symptom of this bug is a failed to locate grouping
+      columns error that is dependent on the datatype involved;
+      but there could be other issues as well.
+     
+    
+
+    
+     
+      Fix decompilation of CASE WHEN with an implicit coercion
+      (Tom)
+     
+
+     
+      This mistake could lead to Assert failures in an Assert-enabled build,
+      or an unexpected CASE WHEN clause error message in other
+      cases, when trying to examine or dump a view.
+     
+    
+
+    
+     
+      Fix possible misassignment of the owner of a TOAST table's rowtype (Tom)
+     
+
+     
+      If CLUSTER or a rewriting variant of ALTER TABLE
+      were executed by someone other than the table owner, the
+      pg_type entry for the table's TOAST table would end up
+      marked as owned by that someone.  This caused no immediate problems,
+      since the permissions on the TOAST rowtype aren't examined by any
+      ordinary database operation.  However, it could lead to unexpected
+      failures if one later tried to drop the role that issued the command
+      (in 8.1 or 8.2), or owner of data type appears to be invalid
+      warnings from pg_dump after having done so (in 8.3).
+     
+    
+
+    
+     
+      Change UNLISTEN to exit quickly if the current session has
+      never executed any LISTEN command (Tom)
+     
+
+     
+      Most of the time this is not a particularly useful optimization, but
+      since DISCARD ALL invokes UNLISTEN, the previous
+      coding caused a substantial performance problem for applications that
+      made heavy use of DISCARD ALL.
+     
+    
+
+    
+     
+      Fix PL/pgSQL to not treat INTO after INSERT as
+      an INTO-variables clause anywhere in the string, not only at the start;
+      in particular, don't fail for INSERT INTO within
+      CREATE RULE (Tom)
+     
+    
+
+    
+     
+      Clean up PL/pgSQL error status variables fully at block exit
+      (Ashesh Vashi and Dave Page)
+     
+
+     
+      This is not a problem for PL/pgSQL itself, but the omission could cause
+      the PL/pgSQL Debugger to crash while examining the state of a function.
+     
+    
+
+    
+     
+      Retry failed calls to CallNamedPipe() on Windows
+      (Steve Marshall, Magnus)
+     
+
+     
+      It appears that this function can sometimes fail transiently;
+      we previously treated any failure as a hard error, which could
+      confuse LISTEN/NOTIFY as well as other
+      operations.
+     
+    
+
+    
+     
+      Add MUST (Mauritius Island Summer Time) to the default list
+      of known timezone abbreviations (Xavier Bugaud)
+     
+    
+
+   
+
+  
+
+  Release 8.3.6
+
+  
+  Release date
+  2009-02-02
+  
+
+  
+   This release contains a variety of fixes from 8.3.5.
+   For information about new features in the 8.3 major release, see
+   .
+  
+
+  
+   Migration to Version 8.3.6
+
+   
+    A dump/restore is not required for those running 8.3.X.
+    However, if you are upgrading from a version earlier than 8.3.5,
+    see the release notes for 8.3.5.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Make DISCARD ALL release advisory locks, in addition
+      to everything it already did (Tom)
+     
+
+     
+      This was decided to be the most appropriate behavior.  This could
+      affect existing applications, however.
+     
+    
+
+    
+     
+      Fix whole-index GiST scans to work correctly (Teodor)
+     
+
+     
+      This error could cause rows to be lost if a table is clustered
+      on a GiST index.
+     
+    
+
+    
+     
+      Fix crash of xmlconcat(NULL) (Peter)
+     
+    
+
+    
+     
+      Fix possible crash in ispell dictionary if high-bit-set
+      characters are used as flags (Teodor)
+     
+
+     
+      This is known to be done by one widely available Norwegian dictionary,
+      and the same condition may exist in others.
+     
+    
+
+    
+     
+      Fix misordering of pg_dump output for composite types
+      (Tom)
+     
+
+     
+      The most likely problem was for user-defined operator classes to
+      be dumped after indexes or views that needed them.
+     
+    
+
+    
+     
+      Improve handling of URLs in headline() function (Teodor)
+     
+    
+
+    
+     
+      Improve handling of overlength headlines in headline()
+      function (Teodor)
+     
+    
+
+    
+     
+      Prevent possible Assert failure or misconversion if an encoding
+      conversion is created with the wrong conversion function for the
+      specified pair of encodings (Tom, Heikki)
+     
+    
+
+    
+     
+      Fix possible Assert failure if a statement executed in PL/pgSQL is
+      rewritten into another kind of statement, for example if an
+      INSERT is rewritten into an UPDATE (Heikki)
+     
+    
+
+    
+     
+      Ensure that a snapshot is available to datatype input functions (Tom)
+     
+
+     
+      This primarily affects domains that are declared with CHECK
+      constraints involving user-defined stable or immutable functions.  Such
+      functions typically fail if no snapshot has been set.
+     
+    
+
+    
+     
+      Make it safer for SPI-using functions to be used within datatype I/O;
+      in particular, to be used in domain check constraints (Tom)
+     
+    
+
+    
+     
+      Avoid unnecessary locking of small tables in VACUUM
+      (Heikki)
+     
+    
+
+    
+     
+      Fix a problem that sometimes kept ALTER TABLE ENABLE/DISABLE
+      RULE from being recognized by active sessions (Tom)
+     
+    
+
+    
+     
+      Fix a problem that made UPDATE RETURNING tableoid
+      return zero instead of the correct OID (Tom)
+     
+    
+
+    
+     
+      Allow functions declared as taking ANYARRAY to work on
+      the pg_statistic columns of that type (Tom)
+     
+
+     
+      This used to work, but was unintentionally broken in 8.3.
+     
+    
+
+    
+     
+      Fix planner misestimation of selectivity when transitive equality
+      is applied to an outer-join clause (Tom)
+     
+
+     
+      This could result in bad plans for queries like
+      ... from a left join b on a.a1 = b.b1 where a.a1 = 42 ...
+     
+    
+
+    
+     
+      Improve optimizer's handling of long IN lists (Tom)
+     
+
+     
+      This change avoids wasting large amounts of time on such lists
+      when constraint exclusion is enabled.
+     
+    
+
+    
+     
+      Prevent synchronous scan during GIN index build (Tom)
+     
+
+     
+      Because GIN is optimized for inserting tuples in increasing TID order,
+      choosing to use a synchronous scan could slow the build by a factor of
+      three or more.
+     
+    
+
+    
+     
+      Ensure that the contents of a holdable cursor don't depend on the
+      contents of TOAST tables (Tom)
+     
+
+     
+      Previously, large field values in a cursor result might be represented
+      as TOAST pointers, which would fail if the referenced table got dropped
+      before the cursor is read, or if the large value is deleted and then
+      vacuumed away.  This cannot happen with an ordinary cursor,
+      but it could with a cursor that is held past its creating transaction.
+     
+    
+
+    
+     
+      Fix memory leak when a set-returning function is terminated without
+      reading its whole result (Tom)
+     
+    
+
+    
+     
+      Fix encoding conversion problems in XML functions when the database
+      encoding isn't UTF-8 (Tom)
+     
+    
+
+    
+     
+      Fix contrib/dblink's
+      dblink_get_result(text,bool) function (Joe)
+     
+    
+
+    
+     
+      Fix possible garbage output from contrib/sslinfo functions
+      (Tom)
+     
+    
+
+    
+     
+      Fix incorrect behavior of contrib/tsearch2 compatibility
+      trigger when it's fired more than once in a command (Teodor)
+     
+    
+
+    
+     
+      Fix possible mis-signaling in autovacuum (Heikki)
+     
+    
+
+    
+     
+      Support running as a service on Windows 7 beta (Dave and Magnus)
+     
+    
+
+    
+     
+      Fix ecpg's handling of varchar structs (Michael)
+     
+    
+
+    
+     
+      Fix configure script to properly report failure when
+      unable to obtain linkage information for PL/Perl (Andrew)
+     
+    
+
+    
+     
+      Make all documentation reference pgsql-bugs and/or
+      pgsql-hackers as appropriate, instead of the
+      now-decommissioned pgsql-ports and pgsql-patches
+      mailing lists (Tom)
+     
+    
+
+    
+     
+      Update time zone data files to tzdata release 2009a (for
+      Kathmandu and historical DST corrections in Switzerland, Cuba)
+     
+    
+
+   
+
+  
+
+  Release 8.3.5
+
+  
+  Release date
+  2008-11-03
+  
+
+  
+   This release contains a variety of fixes from 8.3.4.
+   For information about new features in the 8.3 major release, see
+   .
+  
+
+  
+   Migration to Version 8.3.5
+
+   
+    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.  Also, if you were running a previous
+    8.3.X release, it is recommended to REINDEX all GiST
+    indexes after the upgrade.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Fix GiST index corruption due to marking the wrong index entry
+      dead after a deletion (Teodor)
+     
+
+     
+      This would result in index searches failing to find rows they
+      should have found.  Corrupted indexes can be fixed with
+      REINDEX.
+     
+    
+
+    
+     
+      Fix backend crash when the client encoding cannot represent a localized
+      error message (Tom)
+     
+
+     
+      We have addressed similar issues before, but it would still fail if
+      the character has no equivalent message itself couldn't
+      be converted.  The fix is to disable localization and send the plain
+      ASCII error message when we detect such a situation.
+     
+    
+
+    
+     
+      Fix possible crash in bytea-to-XML mapping (Michael McMaster)
+     
+    
+
+    
+     
+      Fix possible crash when deeply nested functions are invoked from
+      a trigger (Tom)
+     
+    
+
+    
+     
+      Improve optimization of expression IN
+      (expression-list) queries (Tom, per an idea from Robert
+      Haas)
+     
+
+     
+      Cases in which there are query variables on the right-hand side had been
+      handled less efficiently in 8.2.x and 8.3.x than in prior versions.
+      The fix restores 8.1 behavior for such cases.
+     
+    
+
+    
+     
+      Fix mis-expansion of rule queries when a sub-SELECT appears
+      in a function call in FROM,  a multi-row VALUES
+      list, or a RETURNING list (Tom)
+     
+
+     
+      The usual symptom of this problem is an unrecognized node type
+      error.
+     
+    
+
+    
+     
+      Fix Assert failure during rescan of an IS NULL
+      search of a GiST index (Teodor)
+     
+    
+
+    
+     
+      Fix memory leak during rescan of a hashed aggregation plan (Neil)
+     
+    
+
+    
+     
+      Ensure an error is reported when a newly-defined PL/pgSQL trigger
+      function is invoked as a normal function (Tom)
+     
+    
+
+    
+     
+      Force a checkpoint before CREATE DATABASE starts to copy
+      files (Heikki)
+     
+
+     
+      This prevents a possible failure if files had recently been deleted
+      in the source database.
+     
+    
+
+    
+     
+      Prevent possible collision of relfilenode numbers
+      when moving a table to another tablespace with ALTER SET
+      TABLESPACE (Heikki)
+     
+
+     
+      The command tried to re-use the existing filename, instead of
+      picking one that is known unused in the destination directory.
+     
+    
+
+    
+     
+      Fix incorrect text search headline generation when single query
+      item matches first word of text (Sushant Sinha)
+     
+    
+
+    
+     
+      Fix improper display of fractional seconds in interval values when
+      using a non-ISO datestyle in an 
+      build (Ron Mayer)
+     
+    
+
+    
+     
+      Make ILIKE compare characters case-insensitively
+      even when they're escaped (Andrew)
+     
+    
+
+    
+     
+      Ensure DISCARD is handled properly by statement logging (Tom)
+     
+    
+
+    
+     
+      Fix incorrect logging of last-completed-transaction time during
+      PITR recovery (Tom)
+     
+    
+
+    
+     
+      Ensure SPI_getvalue and SPI_getbinval
+      behave correctly when the passed tuple and tuple descriptor have
+      different numbers of columns (Tom)
+     
+
+     
+      This situation is normal when a table has had columns added or removed,
+      but these two functions didn't handle it properly.
+      The only likely consequence is an incorrect error indication.
+     
+    
+
+    
+     
+      Mark SessionReplicationRole as PGDLLIMPORT
+      so it can be used by Slony on Windows (Magnus)
+     
+    
+
+    
+     
+      Fix small memory leak when using libpq's
+      gsslib parameter (Magnus)
+     
+
+     
+      The space used by the parameter string was not freed at connection
+      close.
+     
+    
+
+    
+     
+      Ensure libgssapi is linked into libpq
+      if needed (Markus Schaaf)
+     
+    
+
+    
+     
+      Fix ecpg's parsing of CREATE ROLE (Michael)
+     
+    
+
+    
+     
+      Fix recent breakage of pg_ctl restart (Tom)
+     
+    
+
+    
+     
+      Ensure pg_control is opened in binary mode
+      (Itagaki Takahiro)
+     
+
+     
+      pg_controldata and pg_resetxlog
+      did this incorrectly, and so could fail on Windows.
+     
+    
+
+    
+     
+      Update time zone data files to tzdata release 2008i (for
+      DST law changes in Argentina, Brazil, Mauritius, Syria)
+     
+    
+
+   
+
+  
+
+  Release 8.3.4
+
+  
+  Release date
+  2008-09-22
+  
+
+  
+   This release contains a variety of fixes from 8.3.3.
+   For information about new features in the 8.3 major release, see
+   .
+  
+
+  
+   Migration to Version 8.3.4
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Fix bug in btree WAL recovery code (Heikki)
+     
+
+     
+      Recovery failed if the WAL ended partway through a page split operation.
+     
+    
+
+    
+     
+      Fix potential use of wrong cutoff XID for HOT page pruning (Alvaro)
+     
+
+     
+      This error created a risk of corruption in system
+      catalogs that are consulted by VACUUM: dead tuple versions
+      might be removed too soon.  The impact of this on actual database
+      operations would be minimal, since the system doesn't follow MVCC
+      rules while examining catalogs, but it might result in transiently
+      wrong output from pg_dump or other client programs.
+     
+    
+
+    
+     
+      Fix potential miscalculation of datfrozenxid (Alvaro)
+     
+
+     
+      This error may explain some recent reports of failure to remove old
+      pg_clog data.
+     
+    
+
+    
+     
+      Fix incorrect HOT updates after pg_class is reindexed
+      (Tom)
+     
+
+     
+      Corruption of pg_class could occur if REINDEX
+      TABLE pg_class was followed in the same session by an ALTER
+      TABLE RENAME or ALTER TABLE SET SCHEMA command.
+     
+    
+
+    
+     
+      Fix missed combo cid case (Karl Schnaitter)
+     
+
+     
+      This error made rows incorrectly invisible to a transaction in which they
+      had been deleted by multiple subtransactions that all aborted.
+     
+    
+
+    
+     
+      Prevent autovacuum from crashing if the table it's currently
+      checking is deleted at just the wrong time (Alvaro)
+     
+    
+
+    
+     
+      Widen local lock counters from 32 to 64 bits (Tom)
+     
+
+     
+      This responds to reports that the counters could overflow in
+      sufficiently long transactions, leading to unexpected lock is
+      already held errors.
+     
+    
+
+    
+     
+      Fix possible duplicate output of tuples during a GiST index scan (Teodor)
+     
+    
+
+    
+     
+      Regenerate foreign key checking queries from scratch when either
+      table is modified (Tom)
+     
+
+     
+      Previously, 8.3 would attempt to replan the query, but would work from
+      previously generated query text.  This led to failures if a
+      table or column was renamed.
+     
+    
+
+    
+     
+      Fix missed permissions checks when a view contains a simple
+      UNION ALL construct (Heikki)
+     
+
+     
+      Permissions for the referenced tables were checked properly, but not
+      permissions for the view itself.
+     
+    
+
+    
+     
+      Add checks in executor startup to ensure that the tuples produced by an
+      INSERT or UPDATE will match the target table's
+      current rowtype (Tom)
+     
+
+     
+      This situation is believed to be impossible in 8.3, but it can happen in
+      prior releases, so a check seems prudent.
+     
+    
+
+    
+     
+      Fix possible repeated drops during DROP OWNED (Tom)
+     
+
+     
+      This would typically result in strange errors such as cache
+      lookup failed for relation NNN.
+     
+    
+
+    
+     
+      Fix several memory leaks in XML operations (Kris Jurka, Tom)
+     
+    
+
+    
+     
+      Fix xmlserialize() to raise error properly for
+      unacceptable target data type (Tom)
+     
+    
+
+    
+     
+      Fix a couple of places that mis-handled multibyte characters in text
+      search configuration file parsing (Tom)
+     
+
+     
+      Certain characters occurring in configuration files would always cause
+      invalid byte sequence for encoding failures.
+     
+    
+
+    
+     
+      Provide file name and line number location for all errors reported
+      in text search configuration files (Tom)
+     
+    
+
+    
+     
+      Fix AT TIME ZONE to first try to interpret its timezone
+      argument as a timezone abbreviation, and only try it as a full timezone
+      name if that fails, rather than the other way around as formerly (Tom)
+     
+
+     
+      The timestamp input functions have always resolved ambiguous zone names
+      in this order.  Making AT TIME ZONE do so as well improves
+      consistency, and fixes a compatibility bug introduced in 8.1:
+      in ambiguous cases we now behave the same as 8.0 and before did,
+      since in the older versions AT TIME ZONE accepted
+      only abbreviations.
+     
+    
+
+    
+     
+      Fix datetime input functions to correctly detect integer overflow when
+      running on a 64-bit platform (Tom)
+     
+    
+
+    
+     
+      Prevent integer overflows during units conversion when displaying a
+      configuration parameter that has units (Tom)
+     
+    
+
+    
+     
+      Improve performance of writing very long log messages to syslog (Tom)
+     
+    
+
+    
+     
+      Allow spaces in the suffix part of an LDAP URL in
+      pg_hba.conf (Tom)
+     
+    
+
+    
+     
+      Fix bug in backwards scanning of a cursor on a SELECT DISTINCT
+      ON query (Tom)
+     
+    
+
+    
+     
+      Fix planner bug that could improperly push down IS NULL
+      tests below an outer join (Tom)
+     
+
+     
+      This was triggered by occurrence of IS NULL tests for
+      the same relation in all arms of an upper OR clause.
+     
+    
+
+    
+     
+      Fix planner bug with nested sub-select expressions (Tom)
+     
+
+     
+      If the outer sub-select has no direct dependency on the parent query,
+      but the inner one does, the outer value might not get recalculated
+      for new parent query rows.
+     
+    
+
+    
+     
+      Fix planner to estimate that GROUP BY expressions yielding
+      boolean results always result in two groups, regardless of the
+      expressions' contents (Tom)
+     
+
+     
+      This is very substantially more accurate than the regular GROUP
+      BY estimate for certain boolean tests like col
+      IS NULL.
+     
+    
+
+    
+     
+      Fix PL/PgSQL to not fail when a FOR loop's target variable
+      is a record containing composite-type fields (Tom)
+     
+    
+
+    
+     
+      Fix PL/Tcl to behave correctly with Tcl 8.5, and to be more careful
+      about the encoding of data sent to or from Tcl (Tom)
+     
+    
+
+    
+     
+      Improve performance of PQescapeBytea() (Rudolf Leitgeb)
+     
+    
+
+    
+     
+      On Windows, work around a Microsoft bug by preventing
+      libpq from trying to send more than 64kB per system call
+      (Magnus)
+     
+    
+
+    
+     
+      Fix ecpg to handle variables properly in SET
+      commands (Michael)
+     
+    
+
+    
+     
+      Improve pg_dump and pg_restore's
+      error reporting after failure to send a SQL command (Tom)
+     
+    
+
+    
+     
+      Fix pg_ctl to properly preserve postmaster
+      command-line arguments across a restart (Bruce)
+     
+    
+
+    
+     
+      Fix erroneous WAL file cutoff point calculation in
+      pg_standby (Simon)
+     
+    
+
+    
+     
+      Update time zone data files to tzdata release 2008f (for
+      DST law changes in Argentina, Bahamas, Brazil, Mauritius, Morocco,
+      Pakistan, Palestine, and Paraguay)
+     
+    
+
+   
+
+  
+
+  Release 8.3.3
+
+  
+  Release date
+  2008-06-12
+  
+
+  
+   This release contains one serious and one minor bug fix over 8.3.2.
+   For information about new features in the 8.3 major release, see
+   .
+  
+
+  
+   Migration to Version 8.3.3
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Make pg_get_ruledef() parenthesize negative constants (Tom)
+     
+
+     
+      Before this fix, a negative constant in a view or rule might be dumped
+      as, say, -42::integer, which is subtly incorrect: it should
+      be (-42)::integer due to operator precedence rules.
+      Usually this would make little difference, but it could interact with
+      another recent patch to cause
+      PostgreSQL to reject what had been a valid
+      SELECT DISTINCT view query.  Since this could result in
+      pg_dump output failing to reload, it is being treated
+      as a high-priority fix.  The only released versions in which dump
+      output is actually incorrect are 8.3.1 and 8.2.7.
+     
+    
+
+    
+     
+      Make ALTER AGGREGATE ... OWNER TO update
+      pg_shdepend (Tom)
+     
+
+     
+      This oversight could lead to problems if the aggregate was later
+      involved in a DROP OWNED or REASSIGN OWNED
+      operation.
+     
+    
+
+   
+
+  
+
+  Release 8.3.2
+
+  
+  Release date
+  never released
+  
+
+  
+   This release contains a variety of fixes from 8.3.1.
+   For information about new features in the 8.3 major release, see
+   .
+  
+
+  
+   Migration to Version 8.3.2
+
+   
+    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.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Fix ERRORDATA_STACK_SIZE exceeded crash that
+      occurred on Windows when using UTF-8 database encoding and a different
+      client encoding (Tom)
+     
+    
+
+    
+     
+      Fix incorrect archive truncation point calculation for the
+      %r macro in recovery_command parameters
+      (Simon)
+     
+
+     
+      This could lead to data loss if a warm-standby script relied on
+      %r to decide when to throw away WAL segment files.
+     
+    
+
+    
+     
+      Fix 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)
+     
+
+     
+      Previous versions neglected to check this requirement at all.
+     
+    
+
+    
+     
+      Fix REASSIGN OWNED so that it works on procedural
+      languages too (Alvaro)
+     
+    
+
+    
+     
+      Fix problems with SELECT FOR UPDATE/SHARE occurring as a
+      subquery in a query with a non-SELECT top-level operation
+      (Tom)
+     
+    
+
+    
+     
+      Fix possible CREATE TABLE failure when inheriting the
+      same constraint from multiple parent relations that
+      inherited that constraint from a common ancestor (Tom)
+     
+    
+
+    
+     
+      Fix pg_get_ruledef() to show the alias, if any, attached
+      to the target table of an UPDATE or DELETE
+      (Tom)
+     
+    
+
+    
+     
+      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)
+     
+
+     
+      8.3.0 and 8.3.1 threw an error instead.
+     
+    
+
+    
+     
+      Fix GIN bug that could result in a too many LWLocks
+      taken failure (Teodor)
+     
+    
+
+    
+     
+      Fix broken GiST comparison function for tsquery (Teodor)
+     
+    
+
+    
+     
+      Fix tsvector_update_trigger() and ts_stat()
+      to accept domains over the types they expect to work with (Tom)
+     
+    
+
+    
+     
+      Fix failure to support enum data types as foreign keys (Tom)
+     
+    
+
+    
+     
+      Avoid possible crash when decompressing corrupted data
+      (Zdenek Kotala)
+     
+    
+
+    
+     
+      Fix race conditions between delayed unlinks and DROP
+      DATABASE (Heikki)
+     
+
+     
+      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.
+     
+    
+
+    
+     
+      Repair two places where SIGTERM exit of a backend could leave corrupted
+      state in shared memory (Tom)
+     
+
+     
+      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.
+     
+    
+
+    
+     
+      Fix possible crash due to incorrect plan generated for an
+      x IN (SELECT y
+      FROM ...) clause when x and y
+      have different data types; and make sure the behavior is semantically
+      correct when the conversion from y's type to
+      x's type is lossy (Tom)
+     
+    
+
+    
+     
+      Fix oversight that prevented the planner from substituting known Param
+      values as if they were constants (Tom)
+     
+
+     
+      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.
+     
+    
+
+    
+     
+      Fix planner failure when an indexable MIN or
+      MAX aggregate is used with DISTINCT or
+      ORDER BY (Tom)
+     
+    
+
+    
+     
+      Fix planner to ensure it never uses a physical tlist for a
+      plan node that is feeding a Sort node (Tom)
+     
+
+     
+      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.
+     
+    
+
+    
+     
+      Avoid unnecessary copying of query strings (Tom)
+     
+
+     
+      This fixes a performance problem introduced in 8.3.0 when a very large
+      number of commands are submitted as a single query string.
+     
+    
+
+    
+     
+      Make TransactionIdIsCurrentTransactionId() use binary
+      search instead of linear search when checking child-transaction XIDs
+      (Heikki)
+     
+
+     
+      This fixes some cases in which 8.3.0 was significantly
+      slower than earlier releases.
+     
+    
+
+    
+     
+      Fix conversions between ISO-8859-5 and other encodings to handle
+      Cyrillic Yo characters (e and E with
+      two dots) (Sergey Burladyan)
+     
+    
+
+    
+     
+      Fix several datatype input functions, notably array_in(),
+      that were allowing unused bytes in their results to contain
+      uninitialized, unpredictable values (Tom)
+     
+
+     
+      This could lead to failures in which two apparently identical literal
+      values were not seen as equal, resulting in the parser complaining
+      about unmatched ORDER BY and DISTINCT
+      expressions.
+     
+    
+
+    
+     
+      Fix a corner case in regular-expression substring matching
+      (substring(string from
+      pattern)) (Tom)
+     
+
+     
+      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
+      substring('foo' from 'foo(bar)?').
+      This should return NULL, since (bar) isn't matched, but
+      it was mistakenly returning the whole-pattern match instead (ie,
+      foo).
+     
+    
+
+    
+     
+      Prevent cancellation of an auto-vacuum that was launched to prevent
+      XID wraparound (Alvaro)
+     
+    
+
+    
+     
+      Improve 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)
+     
+    
+
+    
+     
+      Fix initdb to reject a relative path for its
+      --xlogdir (-X) option (Tom)
+     
+    
+
+    
+     
+      Make psql print tab characters as an appropriate
+      number of spaces, rather than \x09 as was done in
+      8.3.0 and 8.3.1 (Bruce)
+     
+    
+
+    
+     
+      Update time zone data files to tzdata release 2008c (for
+      DST law changes in Morocco, Iraq, Choibalsan, Pakistan, Syria, Cuba, and
+      Argentina/San_Luis)
+     
+    
+
+    
+     
+      Add ECPGget_PGconn() function to
+      ecpglib (Michael)
+     
+    
+
+    
+     
+      Fix incorrect result from ecpg's
+      PGTYPEStimestamp_sub() function (Michael)
+     
+    
+
+    
+     
+      Fix handling of continuation line markers in ecpg
+      (Michael)
+     
+    
+
+    
+     
+      Fix possible crashes in contrib/cube functions (Tom)
+     
+    
+
+    
+     
+      Fix core dump in contrib/xml2's
+      xpath_table() function when the input query returns a
+      NULL value (Tom)
+     
+    
+
+    
+     
+      Fix contrib/xml2's makefile to not override
+      CFLAGS, and make it auto-configure properly for
+      libxslt present or not (Tom)
+     
+    
+
+   
+
+  
+
+  Release 8.3.1
+
+  
+  Release date
+  2008-03-17
+  
+
+  
+   This release contains a variety of fixes from 8.3.0.
+   For information about new features in the 8.3 major release, see
+   .
+  
+
+  
+   Migration to Version 8.3.1
+
+   
+    A dump/restore is not required for those running 8.3.X.
+    However, you might need to REINDEX indexes on textual
+    columns after updating, if you are affected by the Windows locale
+    issue described below.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Fix character string comparison for Windows locales that consider
+      different character combinations as equal (Tom)
+     
+
+     
+      This fix applies only on Windows and only when using UTF-8
+      database encoding.  The same fix was made for all other cases
+      over two years ago, but Windows with UTF-8 uses a separate code
+      path that was not updated.  If you are using a locale that
+      considers some non-identical strings as equal, you may need to
+      REINDEX to fix existing indexes on textual columns.
+     
+    
+
+    
+     
+      Repair corner-case bugs in VACUUM FULL (Tom)
+     
+
+     
+      A potential deadlock between concurrent VACUUM FULL
+      operations on different system catalogs was introduced in 8.2.
+      This has now been corrected.  8.3 made this worse because the
+      deadlock could occur within a critical code section, making it
+      a PANIC rather than just ERROR condition.
+     
+
+     
+      Also, a VACUUM FULL that failed partway through
+      vacuuming a system catalog could result in cache corruption in
+      concurrent database sessions.
+     
+
+     
+      Another VACUUM FULL bug introduced in 8.3 could
+      result in a crash or out-of-memory report when dealing with
+      pages containing no live tuples.
+     
+    
+
+    
+     
+      Fix misbehavior of foreign key checks involving character
+      or bit columns (Tom)
+     
+
+     
+      If the referencing column were of a different but compatible type
+      (for instance varchar), the constraint was enforced incorrectly.
+     
+    
+
+    
+     
+      Avoid needless deadlock failures in no-op foreign-key checks (Stephan
+      Szabo, Tom)
+     
+    
+
+    
+     
+      Fix possible core dump when re-planning a prepared query (Tom)
+     
+
+     
+      This bug affected only protocol-level prepare operations, not
+      SQL PREPARE, and so tended to be seen only with
+      JDBC, DBI, and other client-side drivers that use prepared
+      statements heavily.
+     
+    
+
+    
+     
+      Fix possible failure when re-planning a query that calls an SPI-using
+      function (Tom)
+     
+    
+
+    
+     
+      Fix failure in row-wise comparisons involving columns of different
+      datatypes (Tom)
+     
+    
+
+    
+     
+      Fix longstanding LISTEN/NOTIFY
+      race condition (Tom)
+     
+
+     
+      In rare cases a session that had just executed a
+      LISTEN might not get a notification, even though
+      one would be expected because the concurrent transaction executing
+      NOTIFY was observed to commit later.
+     
+
+     
+      A side effect of the fix is that a transaction that has executed
+      a not-yet-committed LISTEN command will not see any
+      row in pg_listener for the 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.
+     
+    
+
+    
+     
+      Disallow LISTEN and UNLISTEN within a
+      prepared transaction (Tom)
+     
+
+     
+      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 UNLISTEN remained uncommitted.
+     
+    
+
+    
+     
+      Disallow dropping a temporary table within a
+      prepared transaction (Heikki)
+     
+
+     
+      This was correctly disallowed by 8.1, but the check was inadvertently
+      broken in 8.2 and 8.3.
+     
+    
+
+    
+     
+      Fix rare crash when an error occurs during a query using a hash index
+      (Heikki)
+     
+    
+
+    
+     
+      Fix incorrect comparison of tsquery values (Teodor)
+     
+    
+
+    
+     
+      Fix incorrect behavior of LIKE with non-ASCII characters
+      in single-byte encodings (Rolf Jentsch)
+     
+    
+
+    
+     
+      Disable xmlvalidate (Tom)
+     
+
+     
+      This function should have been removed before 8.3 release, but
+      was inadvertently left in the source code.  It poses a small
+      security risk since unprivileged users could use it to read the
+      first few characters of any file accessible to the server.
+     
+    
+
+    
+     
+      Fix memory leaks in certain usages of set-returning functions (Neil)
+     
+    
+
+    
+     
+      Make encode(bytea, 'escape') convert all
+      high-bit-set byte values into \nnn octal
+      escape sequences (Tom)
+     
+
+     
+      This is necessary to avoid encoding problems when the database
+      encoding is multi-byte.  This change could pose compatibility issues
+      for applications that are expecting specific results from
+      encode.
+     
+    
+
+    
+     
+      Fix input of datetime values for February 29 in years BC (Tom)
+     
+
+     
+      The former coding was mistaken about which years were leap years.
+     
+    
+
+    
+     
+      Fix unrecognized node type error in some variants of
+      ALTER OWNER (Tom)
+     
+    
+
+    
+     
+      Avoid tablespace permissions errors in CREATE TABLE LIKE
+      INCLUDING INDEXES (Tom)
+     
+    
+
+    
+     
+      Ensure pg_stat_activity.waiting flag
+      is cleared when a lock wait is aborted (Tom)
+     
+    
+
+    
+     
+      Fix handling of process permissions on Windows Vista (Dave, Magnus)
+     
+
+     
+      In particular, this fix allows starting the server as the Administrator
+      user.
+     
+    
+
+    
+     
+      Update time zone data files to tzdata release 2008a
+      (in particular, recent Chile changes); adjust timezone abbreviation
+      VET (Venezuela) to mean UTC-4:30, not UTC-4:00 (Tom)
+     
+    
+
+    
+     
+      Fix ecpg problems with arrays (Michael)
+     
+    
+
+    
+     
+      Fix pg_ctl to correctly extract the postmaster's port
+      number from command-line options (Itagaki Takahiro, Tom)
+     
+
+     
+      Previously, pg_ctl start -w could try to contact the
+      postmaster on the wrong port, leading to bogus reports of startup
+      failure.
+     
+    
+
+    
+     
+      Use 
+      in recent gcc versions (Tom)
+     
+
+     
+      This is known to be necessary when building PostgreSQL
+      with gcc 4.3 or later.
+     
+    
+
+    
+     
+      Enable building contrib/uuid-ossp with MSVC (Hiroshi Saito)
+     
+    
+
+   
+
+  
+
+  Release 8.3
+
+  
+   Release date
+   2008-02-04
+  
+
+  
+   Overview
+
+   
+    With significant new functionality and performance enhancements,
+    this release represents a major leap forward for
+    PostgreSQL. This was made possible by a growing
+    community that has dramatically accelerated the pace of
+    development. This release adds the following major features:
+   
+
+   
+
+    
+     
+      Full text search is integrated into the core database system
+     
+    
+
+    
+     
+      Support for the SQL/XML standard, including new operators and an
+      XML data type
+     
+    
+
+    
+     
+      Enumerated data types (ENUM)
+     
+    
+
+    
+     
+      Arrays of composite types
+     
+    
+
+    
+     
+      Universally Unique Identifier (UUID) data type
+     
+    
+
+    
+     
+      Add control over whether NULLs sort first or last
+     
+    
+
+    
+     
+      Updatable cursors
+     
+    
+
+    
+     
+      Server configuration parameters can now be set on a per-function
+      basis
+     
+    
+
+    
+     
+      User-defined types can now have type modifiers
+     
+    
+
+    
+     
+      Automatically re-plan cached queries when table
+      definitions change or statistics are updated
+     
+    
+
+    
+     
+      Numerous improvements in logging and statistics collection
+     
+    
+
+    
+     
+      Support Security Service Provider Interface (SSPI) for
+      authentication on Windows
+     
+    
+
+    
+     
+      Support multiple concurrent autovacuum processes, and other
+      autovacuum improvements
+     
+    
+
+    
+     
+      Allow the whole PostgreSQL distribution to be compiled
+      with Microsoft Visual C++
+     
+    
+
+   
+
+   
+    Major performance improvements are listed below.  Most of
+    these enhancements are automatic and do not require user changes or
+    tuning:
+   
+
+  
+
+    
+     
+      Asynchronous commit delays writes to WAL during transaction commit
+     
+    
+
+    
+     
+      Checkpoint writes can be spread over a longer time period to smooth
+      the I/O spike during each checkpoint
+     
+    
+
+    
+     
+      Heap-Only Tuples (HOT) accelerate space reuse for
+      most UPDATEs and DELETEs
+     
+    
+
+    
+     
+      Just-in-time background writer strategy improves disk write
+      efficiency
+     
+    
+
+    
+     
+      Using non-persistent transaction IDs for read-only transactions
+      reduces overhead and VACUUM requirements
+     
+    
+
+    
+     
+      Per-field and per-row storage overhead has been reduced
+     
+    
+
+    
+     
+      Large sequential scans no longer force out frequently used
+      cached pages
+     
+    
+
+    
+     
+      Concurrent large sequential scans can now share disk reads
+     
+    
+
+    
+     
+      ORDER BY ... LIMIT can be done without sorting
+     
+    
+
+   
+
+   
+    The above items are explained in more detail in the sections below.
+   
+
+  
+
+  
+   Migration to Version 8.3
+
+   
+    A dump/restore using pg_dump is
+    required for those wishing to migrate data from any previous
+    release.
+   
+
+   
+    Observe the following incompatibilities:
+   
+
+   
+    General
+    
+
+     
+      
+       Non-character data types are no longer automatically cast to
+       TEXT (Peter, Tom)
+      
+
+      
+       Previously, if a non-character value was supplied to an operator or
+       function that requires text input, it was automatically
+       cast to text, for most (though not all) built-in data types.
+       This no longer happens: an explicit cast to text is now
+       required for all non-character-string types.  For example, these
+       expressions formerly worked:
+
+
+substr(current_date, 1, 4)
+23 LIKE '2%'
+
+
+       but will now draw function does not exist and operator
+       does not exist errors respectively.  Use an explicit cast instead:
+
+
+substr(current_date::text, 1, 4)
+23::text LIKE '2%'
+
+
+       (Of course, you can use the more verbose CAST() syntax too.)
+       The reason for the change is that these automatic casts too often caused
+       surprising behavior.  An example is that in previous releases, this
+       expression was accepted but did not do what was expected:
+
+
+current_date < 2017-11-17
+
+
+       This is actually comparing a date to an integer, which should be
+       (and now is) rejected — but in the presence of automatic
+       casts both sides were cast to text and a textual comparison
+       was done, because the text < text operator was able
+       to match the expression when no other < operator could.
+      
+
+      
+       Types char(n) and
+       varchar(n) still cast to text
+       automatically.  Also, automatic casting to text still works for
+       inputs to the concatenation (||) operator, so long as least
+       one input is a character-string type.
+      
+     
+
+     
+      
+        Full text search features from contrib/tsearch2 have
+        been moved into the core server, with some minor syntax changes
+      
+
+      
+       contrib/tsearch2 now contains a compatibility
+       interface.
+      
+     
+
+     
+      
+       ARRAY(SELECT ...), where the SELECT
+       returns no rows, now returns an empty array, rather than NULL
+       (Tom)
+      
+     
+
+     
+      
+       The array type name for a base data type is no longer always the base
+       type's name with an underscore prefix
+      
+
+      
+       The old naming convention is still honored when possible, but
+       application code should no longer depend on it. Instead
+       use the new pg_type.typarray column to
+       identify the array data type associated with a given type.
+      
+     
+
+     
+      
+       ORDER BY ... USING operator must now
+       use a less-than or greater-than operator that is
+       defined in a btree operator class
+      
+
+      
+       This restriction was added to prevent inconsistent results.
+      
+     
+
+     
+      
+       SET LOCAL changes now persist until
+       the end of the outermost transaction, unless rolled back (Tom)
+      
+
+      
+       Previously SET LOCAL's effects were lost
+       after subtransaction commit (RELEASE SAVEPOINT
+       or exit from a PL/pgSQL exception block).
+      
+     
+
+     
+      
+       Commands rejected in transaction blocks are now also rejected in
+       multiple-statement query strings (Tom)
+      
+
+      
+       For example, "BEGIN; DROP DATABASE; COMMIT" will now be
+       rejected even if submitted as a single query message.
+      
+     
+
+     
+      
+       ROLLBACK outside a transaction block now
+       issues NOTICE instead of WARNING (Bruce)
+      
+     
+
+     
+      
+       Prevent NOTIFY/LISTEN/UNLISTEN
+       from accepting schema-qualified names (Bruce)
+      
+
+      
+       Formerly, these commands accepted schema.relation but
+       ignored the schema part, which was confusing.
+      
+     
+
+     
+      
+       ALTER SEQUENCE no longer affects the sequence's
+       currval() state (Tom)
+      
+     
+
+     
+      
+       Foreign keys now must match indexable conditions for
+       cross-data-type references (Tom)
+      
+
+      
+       This improves semantic consistency and helps avoid
+       performance problems.
+      
+     
+
+     
+      
+       Restrict object size functions to users who have reasonable
+       permissions to view such information (Tom)
+      
+
+      
+       For example, pg_database_size() now requires
+       CONNECT permission, which is granted to everyone by
+       default. pg_tablespace_size() requires
+       CREATE permission in the tablespace, or is allowed if
+       the tablespace is the default tablespace for the database.
+      
+     
+
+     
+      
+       Remove the undocumented !!= (not in) operator (Tom)
+      
+
+      
+       NOT IN (SELECT ...) is the proper way to
+       perform this operation.
+      
+     
+
+     
+      
+       Internal hashing functions are now more uniformly-distributed (Tom)
+      
+
+      
+       If application code was computing and storing hash values using
+       internal PostgreSQL hashing functions, the hash
+       values must be regenerated.
+      
+     
+
+     
+      
+       C-code conventions for handling variable-length data values
+       have changed (Greg Stark, Tom)
+      
+
+      
+       The new SET_VARSIZE() macro must be used
+       to set the length of generated varlena values. Also, it
+       might be necessary to expand (de-TOAST) input values
+       in more cases.
+      
+     
+
+     
+      
+       Continuous archiving no longer reports each successful archive
+       operation to the server logs unless DEBUG level is used
+       (Simon)
+      
+     
+
+    
+
+    
+
+    
+     Configuration Parameters
+
+    
+
+     
+      
+       Numerous changes in administrative server parameters
+      
+
+      
+       bgwriter_lru_percent,
+       bgwriter_all_percent,
+       bgwriter_all_maxpages,
+       stats_start_collector, and
+       stats_reset_on_server_start are removed.
+       redirect_stderr is renamed to
+       logging_collector.
+       stats_command_string is renamed to
+       track_activities.
+       stats_block_level and stats_row_level
+       are merged into track_counts.
+       A new boolean configuration parameter, archive_mode,
+       controls archiving. Autovacuum's default settings have changed.
+      
+     
+
+     
+      
+       Remove stats_start_collector parameter (Tom)
+      
+
+      
+       We now always start the collector process, unless UDP
+       socket creation fails.
+      
+     
+
+     
+      
+       Remove stats_reset_on_server_start parameter (Tom)
+      
+
+      
+       This was removed because pg_stat_reset()
+       can be used for this purpose.
+      
+     
+
+     
+      
+       Commenting out a parameter in postgresql.conf now
+       causes it to revert to its default value (Joachim Wieland)
+      
+
+      
+       Previously, commenting out an entry left the parameter's value unchanged
+       until the next server restart.
+      
+     
+
+    
+
+    
+
+
+    
+     Character Encodings
+
+    
+
+     
+      
+       Add more checks for invalidly-encoded data (Andrew)
+      
+
+      
+       This change plugs some holes that existed in literal backslash
+       escape string processing and COPY escape
+       processing. Now the de-escaped string is rechecked to see if the
+       result created an invalid multi-byte character.
+      
+     
+
+     
+      
+       Disallow database encodings that are inconsistent with the server's
+       locale setting (Tom)
+      
+
+      
+       On most platforms, C locale is the only locale that
+       will work with any database encoding.  Other locale settings imply
+       a specific encoding and will misbehave if the database encoding
+       is something different.  (Typical symptoms include bogus textual
+       sort order and wrong results from upper() or
+       lower().)  The server now rejects attempts to create
+       databases that have an incompatible encoding.
+      
+     
+
+     
+      
+       Ensure that chr() cannot create
+       invalidly-encoded values (Andrew)
+      
+
+      
+       In UTF8-encoded databases the argument of chr() is
+       now treated as a Unicode code point. In other multi-byte encodings
+       chr()'s argument must designate a 7-bit ASCII
+       character.  Zero is no longer accepted.
+       ascii() has been adjusted to match.
+      
+     
+
+     
+      
+       Adjust convert() behavior to ensure encoding
+       validity (Andrew)
+      
+
+      
+       The two argument form of convert() has been
+       removed. The three argument form now takes a bytea
+       first argument and returns a bytea. To cover the
+       loss of functionality, three new functions have been added:
+      
+
+      
+       
+        
+         convert_from(bytea, name) returns
+         text — converts the first argument from the named
+         encoding to the database encoding
+        
+       
+
+       
+        
+         convert_to(text, name) returns
+         bytea — converts the first argument from the
+         database encoding to the named encoding
+        
+       
+
+       
+        
+         length(bytea, name) returns
+         integer — gives the length of the first
+         argument in characters in the named encoding
+        
+       
+      
+     
+
+     
+      
+       Remove convert(argument USING conversion_name)
+       (Andrew)
+      
+
+      
+       Its behavior did not match the SQL standard.
+      
+     
+
+     
+      
+       Make JOHAB encoding client-only (Tatsuo)
+      
+
+      
+       JOHAB is not safe as a server-side encoding.
+      
+     
+
+    
+
+   
+
+  
+
+  
+   Changes
+
+   
+    Below you will find a detailed account of the
+    changes between PostgreSQL 8.3 and
+    the previous major release.
+   
+
+   
+    Performance
+    
+
+     
+      
+       Asynchronous commit delays writes to WAL during transaction commit
+       (Simon)
+      
+
+      
+       This feature dramatically increases performance for short data-modifying
+       transactions.  The disadvantage is that because disk writes are delayed,
+       if the database or operating system crashes before data is written to
+       the disk, committed data will be lost.  This feature is useful for
+       applications that can accept some data loss.  Unlike turning off
+       fsync, using asynchronous commit does not put
+       database consistency at risk; the worst case is that after a crash the
+       last few reportedly-committed transactions might not be committed after
+       all.
+       This feature is enabled by turning off synchronous_commit
+       (which can be done per-session or per-transaction, if some transactions
+       are critical and others are not).
+       wal_writer_delay can be adjusted to control the maximum
+       delay before transactions actually reach disk.
+      
+     
+
+     
+      
+       Checkpoint writes can be spread over a longer time period to smooth
+       the I/O spike during each checkpoint (Itagaki Takahiro and Heikki
+       Linnakangas)
+      
+
+      
+       Previously all modified buffers were forced to disk as quickly as
+       possible during a
+       checkpoint, causing an I/O spike that decreased server performance.
+       This new approach spreads out disk writes during checkpoints,
+       reducing peak I/O usage. (User-requested and shutdown checkpoints
+       are still written as quickly as possible.)
+      
+     
+
+     
+      
+       Heap-Only Tuples (HOT) accelerate space reuse for most
+       UPDATEs and DELETEs (Pavan Deolasee, with
+       ideas from many others)
+      
+
+      
+       UPDATEs and DELETEs leave dead tuples
+       behind, as do failed INSERTs.  Previously only
+       VACUUM could reclaim space taken by dead tuples. With
+       HOT dead tuple space can be automatically reclaimed at
+       the time of INSERT or UPDATE if no changes
+       are made to indexed columns.  This allows for more consistent
+       performance.  Also, HOT avoids adding duplicate index
+       entries.
+      
+     
+
+     
+      
+       Just-in-time background writer strategy improves disk write
+       efficiency (Greg Smith, Itagaki Takahiro)
+      
+
+      
+       This greatly reduces the need for manual tuning of the background
+       writer.
+      
+     
+
+     
+      
+       Per-field and per-row storage overhead have been reduced
+       (Greg Stark, Heikki Linnakangas)
+      
+
+      
+       Variable-length data types with data values less than 128 bytes long
+       will see a storage decrease of 3 to 6 bytes. For example, two adjacent
+       char(1) fields now use 4 bytes instead of 16. Row headers
+       are also 4 bytes shorter than before.
+      
+     
+
+     
+      
+       Using non-persistent transaction IDs for read-only transactions
+       reduces overhead and VACUUM requirements (Florian Pflug)
+      
+
+      
+       Non-persistent transaction IDs do not increment the global
+       transaction counter. Therefore, they reduce the load on
+       pg_clog and increase the time between forced
+       vacuums to prevent transaction ID wraparound.
+       Other performance
+       improvements were also made that should improve concurrency.
+      
+     
+
+     
+      
+       Avoid incrementing the command counter after a read-only command (Tom)
+      
+
+      
+       There was formerly a hard limit of 232
+       (4 billion) commands per transaction.  Now only commands that
+       actually changed the database count, so while this limit still
+       exists, it should be significantly less annoying.
+      
+     
+
+     
+      
+       Create a dedicated WAL writer process to off-load
+       work from backends (Simon)
+      
+     
+
+     
+      
+       Skip unnecessary WAL writes for CLUSTER and
+       COPY (Simon)
+      
+
+      
+       Unless WAL archiving is enabled, the system now avoids WAL writes
+       for CLUSTER and just fsync()s the
+       table at the end of the command.  It also does the same for
+       COPY if the table was created in the same
+       transaction.
+      
+     
+
+     
+      
+       Large sequential scans no longer force out frequently used
+       cached pages (Simon, Heikki, Tom)
+      
+     
+
+     
+      
+       Concurrent large sequential scans can now share disk reads (Jeff Davis)
+      
+
+      
+       This is accomplished by starting the new sequential scan in the
+       middle of the table (where another sequential scan is already
+       in-progress) and wrapping around to the beginning to finish.  This
+       can affect the order of returned rows in a query that does not
+       specify ORDER BY.  The synchronize_seqscans
+       configuration parameter can be used to disable this if necessary.
+      
+     
+
+     
+      
+       ORDER BY ... LIMIT can be done without sorting
+       (Greg Stark)
+      
+
+      
+       This is done by sequentially scanning the table and tracking just
+       the top N candidate rows, rather than performing a
+       full sort of the entire table.  This is useful when there is no
+       matching index and the LIMIT is not large.
+      
+     
+
+     
+      
+       Put a rate limit on messages sent to the statistics
+       collector by backends
+       (Tom)
+      
+
+      
+       This reduces overhead for short transactions, but might sometimes
+       increase the delay before statistics are tallied.
+      
+     
+
+     
+      
+       Improve hash join performance for cases with many NULLs (Tom)
+      
+     
+
+     
+      
+       Speed up operator lookup for cases with non-exact datatype matches (Tom)
+      
+     
+
+    
+
+   
+
+   
+    Server
+    
+
+     
+      
+       Autovacuum is now enabled by default (Alvaro)
+      
+
+      
+       Several changes were made to eliminate disadvantages of having
+       autovacuum enabled, thereby justifying the change in default.
+       Several other autovacuum parameter defaults were also modified.
+      
+     
+
+     
+      
+       Support multiple concurrent autovacuum processes (Alvaro, Itagaki
+       Takahiro)
+      
+
+      
+       This allows multiple vacuums to run concurrently.  This prevents
+       vacuuming of a large table from delaying vacuuming of smaller tables.
+      
+     
+
+     
+      
+       Automatically re-plan cached queries when table
+       definitions change or statistics are updated (Tom)
+      
+
+      
+       Previously PL/PgSQL functions that referenced temporary tables
+       would fail if the temporary table was dropped and recreated
+       between function invocations, unless EXECUTE was
+       used.  This improvement fixes that problem and many related issues.
+      
+     
+
+     
+      
+       Add a temp_tablespaces parameter to control
+       the tablespaces for temporary tables and files (Jaime Casanova,
+       Albert Cervera, Bernd Helmle)
+      
+
+      
+       This parameter defines a list of tablespaces to be used.  This
+       enables spreading the I/O load across multiple tablespaces. A random
+       tablespace is chosen each time a temporary object is created.
+       Temporary files are no longer stored in per-database
+       pgsql_tmp/ directories but in per-tablespace
+       directories.
+      
+     
+
+     
+      
+       Place temporary tables' TOAST tables in special schemas named
+       pg_toast_temp_nnn (Tom)
+      
+
+      
+       This allows low-level code to recognize these tables as temporary,
+       which enables various optimizations such as not WAL-logging changes
+       and using local rather than shared buffers for access. This also
+       fixes a bug wherein backends unexpectedly held open file references
+       to temporary TOAST tables.
+      
+     
+
+     
+      
+       Fix problem that a constant flow of new connection requests could
+       indefinitely delay the postmaster from completing a shutdown or
+       a crash restart (Tom)
+      
+     
+
+     
+      
+       Guard against a very-low-probability data loss scenario by preventing
+       re-use of a deleted table's relfilenode until after the next
+       checkpoint (Heikki)
+      
+     
+
+     
+      
+       Fix CREATE CONSTRAINT TRIGGER
+       to convert old-style foreign key trigger definitions into regular
+       foreign key constraints (Tom)
+      
+
+      
+       This will ease porting of foreign key constraints carried forward from
+       pre-7.3 databases, if they were never converted using
+       contrib/adddepend.
+      
+     
+
+     
+      
+       Fix DEFAULT NULL to override inherited defaults (Tom)
+      
+
+      
+       DEFAULT NULL was formerly considered a noise phrase, but it
+       should (and now does) override non-null defaults that would otherwise
+       be inherited from a parent table or domain.
+      
+     
+
+     
+      
+       Add new encodings EUC_JIS_2004 and SHIFT_JIS_2004 (Tatsuo)
+      
+
+      
+       These new encodings can be converted to and from UTF-8.
+      
+     
+
+     
+      
+       Change server startup log message from database system is
+       ready to database system is ready to accept
+       connections, and adjust its timing
+      
+
+      
+       The message now appears only when the postmaster is really ready
+       to accept connections.
+      
+     
+
+    
+
+   
+
+   
+    Monitoring
+    
+
+     
+      
+       Add log_autovacuum_min_duration parameter to
+       support configurable logging of autovacuum activity (Simon, Alvaro)
+      
+     
+
+     
+      
+       Add log_lock_waits parameter to log lock waiting
+       (Simon)
+      
+     
+
+     
+      
+       Add log_temp_files parameter to log temporary
+       file usage (Bill Moran)
+      
+     
+
+     
+      
+       Add log_checkpoints parameter to improve logging
+       of checkpoints (Greg Smith, Heikki)
+      
+     
+
+     
+      
+       log_line_prefix now supports
+       %s and %c escapes in all
+       processes (Andrew)
+      
+
+      
+       Previously these escapes worked only for user sessions, not for
+       background database processes.
+      
+     
+
+     
+      
+       Add log_restartpoints to control logging of
+       point-in-time recovery restart points (Simon)
+      
+     
+
+     
+      
+       Last transaction end time is now logged at end of recovery and at
+       each logged restart point (Simon)
+      
+     
+
+     
+      
+       Autovacuum now reports its activity start time in
+       pg_stat_activity (Tom)
+      
+     
+
+     
+      
+       Allow server log output in comma-separated value (CSV) format (Arul
+       Shaji, Greg Smith, Andrew Dunstan)
+      
+
+      
+       CSV-format log files can easily be loaded into a database table for
+       subsequent analysis.
+      
+     
+
+     
+      
+       Use PostgreSQL-supplied timezone support for formatting timestamps
+       displayed in the server log (Tom)
+      
+
+      
+       This avoids Windows-specific problems with localized time zone
+       names that are in the wrong encoding. There is a new
+       log_timezone parameter that controls the timezone
+       used in log messages, independently of the client-visible
+       timezone parameter.
+      
+     
+
+     
+      
+       New system view pg_stat_bgwriter displays
+       statistics about background writer activity (Magnus)
+      
+     
+
+     
+      
+       Add new columns for database-wide tuple statistics to
+       pg_stat_database (Magnus)
+      
+     
+
+     
+      
+       Add an xact_start (transaction start time) column to
+       pg_stat_activity (Neil)
+      
+
+      
+       This makes it easier to identify long-running transactions.
+      
+     
+
+     
+      
+       Add n_live_tuples and n_dead_tuples columns
+       to pg_stat_all_tables and related views (Glen
+       Parker)
+      
+     
+
+     
+      
+       Merge stats_block_level and stats_row_level
+       parameters into a single parameter track_counts, which
+       controls all messages sent to the statistics collector process
+       (Tom)
+      
+     
+
+     
+      
+       Rename stats_command_string parameter to
+       track_activities (Tom)
+      
+     
+
+     
+      
+       Fix statistical counting of live and dead tuples to recognize that
+       committed and aborted transactions have different effects (Tom)
+      
+     
+
+    
+
+   
+
+   
+    Authentication
+    
+
+     
+      
+       Support Security Service Provider Interface (SSPI) for
+       authentication on Windows (Magnus)
+      
+     
+
+     
+      
+       Support GSSAPI authentication (Henry Hotz, Magnus)
+      
+
+      
+       This should be preferred to native Kerberos authentication because
+       GSSAPI is an industry standard.
+      
+     
+
+     
+      
+       Support a global SSL configuration file (Victor Wagner)
+      
+     
+
+     
+      
+       Add ssl_ciphers parameter to control accepted SSL ciphers
+       (Victor Wagner)
+      
+     
+
+     
+      
+       Add a Kerberos realm parameter, krb_realm (Magnus)
+      
+     
+
+    
+
+   
+
+   
+    Write-Ahead Log (<acronym>WAL</>) and Continuous Archiving
+    
+
+     
+      
+       Change the timestamps recorded in transaction WAL records from
+       time_t to TimestampTz representation (Tom)
+      
+
+      
+       This provides sub-second resolution in WAL, which can be useful for
+       point-in-time recovery.
+      
+     
+
+     
+      
+       Reduce WAL disk space needed by warm standby servers (Simon)
+      
+
+      
+       This change allows a warm standby server to pass the name of the earliest
+       still-needed WAL file to the recovery script, allowing automatic removal
+       of no-longer-needed WAL files.  This is done using %r in
+       the restore_command parameter of
+       recovery.conf.
+      
+     
+
+     
+      
+       New boolean configuration parameter, archive_mode,
+       controls archiving (Simon)
+      
+
+      
+       Previously setting archive_command to an empty string
+       turned off archiving. Now archive_mode turns archiving
+       on and off, independently of archive_command. This is
+       useful for stopping archiving temporarily.
+      
+     
+
+    
+
+   
+
+   
+    Queries
+    
+
+     
+      
+       Full text search is integrated into the core database
+       system (Teodor, Oleg)
+      
+
+      
+       Text search has been improved, moved into the core code, and is now
+       installed by default.  contrib/tsearch2 now contains
+       a compatibility interface.
+      
+     
+
+     
+      
+       Add control over whether NULLs sort first or last (Teodor, Tom)
+      
+
+      
+       The syntax is ORDER BY ... NULLS FIRST/LAST.
+      
+     
+
+     
+      
+       Allow per-column ascending/descending (ASC/DESC)
+       ordering options for indexes (Teodor, Tom)
+      
+
+      
+       Previously a query using ORDER BY with mixed
+       ASC/DESC specifiers could not fully use
+       an index. Now an index can be fully used in such cases if the
+       index was created with matching
+       ASC/DESC specifications.
+       NULL sort order within an index can be controlled, too.
+      
+     
+
+     
+      
+       Allow col IS NULL to use an index (Teodor)
+      
+     
+
+     
+      
+       Updatable cursors (Arul Shaji, Tom)
+      
+
+      
+       This eliminates the need to reference a primary key to
+       UPDATE or DELETE rows returned by a cursor.
+       The syntax is UPDATE/DELETE WHERE CURRENT OF.
+      
+     
+
+     
+      
+       Allow FOR UPDATE in cursors (Arul Shaji, Tom)
+      
+     
+
+     
+      
+       Create a general mechanism that supports casts to and from the
+       standard string types (TEXTVARCHAR,
+       CHAR) for every datatype, by
+       invoking the datatype's I/O functions (Tom)
+      
+
+      
+       Previously, such casts were available only for types that had
+       specialized function(s) for the purpose.
+       These new casts are assignment-only in the to-string direction,
+       explicit-only in the other direction, and therefore should create no
+       surprising behavior.
+      
+     
+
+     
+      
+       Allow UNION and related constructs to return a domain
+       type, when all inputs are of that domain type (Tom)
+      
+
+      
+       Formerly, the output would be considered to be of the domain's base
+       type.
+      
+     
+
+     
+      
+       Allow limited hashing when using two different data types (Tom)
+      
+
+      
+       This allows hash joins, hash indexes, hashed subplans, and hash
+       aggregation to be used in situations involving cross-data-type
+       comparisons, if the data types have compatible hash functions.
+       Currently, cross-data-type hashing support exists for
+       smallint/integer/bigint,
+       and for float4/float8.
+      
+     
+
+     
+      
+       Improve optimizer logic for detecting when variables are equal
+       in a WHERE clause (Tom)
+      
+
+      
+       This allows mergejoins to work with descending sort orders, and
+       improves recognition of redundant sort columns.
+      
+     
+
+     
+      
+       Improve performance when planning large inheritance trees in
+       cases where most tables are excluded by constraints (Tom)
+      
+     
+
+    
+
+   
+
+   
+    Object Manipulation
+    
+
+     
+
+      
+       Arrays of composite types (David Fetter, Andrew, Tom)
+      
+
+      
+       In addition to arrays of explicitly-declared composite types,
+       arrays of the rowtypes of regular tables and views are now
+       supported, except for rowtypes of system catalogs, sequences, and TOAST
+       tables.
+      
+
+     
+
+     
+      
+       Server configuration parameters can now be set on a per-function
+       basis (Tom)
+      
+
+      
+       For example, functions can now set their own
+       search_path to prevent unexpected behavior if a
+       different search_path exists at run-time.  Security
+       definer functions should set search_path to
+       avoid security loopholes.
+      
+     
+
+     
+      
+       CREATE/ALTER FUNCTION now supports
+       COST and ROWS options (Tom)
+      
+
+      
+       COST allows specification of the cost of a
+       function call.  ROWS allows specification of
+       the average number or rows returned by a set-returning function.
+       These values are used by the optimizer in choosing the best plan.
+      
+     
+
+     
+      
+       Implement CREATE TABLE LIKE ...  INCLUDING
+       INDEXES (Trevor Hardcastle, Nikhil Sontakke, Neil)
+      
+     
+
+     
+      
+       Allow CREATE INDEX CONCURRENTLY to ignore
+       transactions in other databases (Simon)
+      
+     
+
+     
+      
+       Add ALTER VIEW ... RENAME TO and ALTER
+       SEQUENCE ... RENAME TO (David Fetter, Neil)
+      
+
+      
+       Previously this could only be done via ALTER TABLE ...
+       RENAME TO.
+      
+     
+
+     
+      
+       Make CREATE/DROP/RENAME DATABASE wait briefly for
+       conflicting backends to exit before failing (Tom)
+      
+
+      
+       This increases the likelihood that these commands will succeed.
+      
+     
+
+     
+      
+       Allow triggers and rules to be deactivated in groups using a
+       configuration parameter, for replication purposes (Jan)
+      
+
+      
+       This allows replication systems to disable triggers and rewrite
+       rules as a group without modifying the system catalogs directly.
+       The behavior is controlled by ALTER TABLE and a new
+       parameter session_replication_role.
+      
+     
+
+     
+      
+       User-defined types can now have type modifiers (Teodor, Tom)
+      
+
+      
+       This allows a user-defined type to take a modifier, like
+       ssnum(7).  Previously only built-in
+       data types could have modifiers.
+      
+     
+
+    
+
+   
+
+   
+    Utility Commands
+    
+
+     
+      
+       Non-superuser database owners now are able to add trusted procedural
+       languages to their databases by default (Jeremy Drake)
+      
+
+      
+       While this is reasonably safe, some administrators might wish to
+       revoke the privilege. It is controlled by
+       pg_pltemplate.tmpldbacreate.
+      
+     
+
+     
+      
+       Allow a session's current parameter setting to be used as the
+       default for future sessions (Tom)
+      
+
+      
+       This is done with SET ... FROM CURRENT in
+       CREATE/ALTER FUNCTIONALTER
+       DATABASE, or ALTER ROLE.
+      
+     
+
+     
+      
+       Implement new commands DISCARD ALL,
+       DISCARD PLANSDISCARD
+       TEMPORARY, CLOSE ALL, and
+       DEALLOCATE ALL (Marko Kreen, Neil)
+      
+
+      
+       These commands simplify resetting a database session to its initial
+       state, and are particularly useful for connection-pooling software.
+      
+     
+
+     
+      
+       Make CLUSTER MVCC-safe (Heikki Linnakangas)
+      
+
+      
+       Formerly, CLUSTER would discard all tuples
+       that were committed dead, even if there were still transactions
+       that should be able to see them under MVCC visibility rules.
+      
+     
+
+     
+      
+       Add new CLUSTER syntax: CLUSTER
+       table USING index
+       (Holger Schurig)
+     
+
+      
+       The old CLUSTER syntax is still supported, but
+       the new form is considered more logical.
+      
+     
+
+     
+      
+       Fix EXPLAIN so it can show complex plans
+       more accurately (Tom)
+      
+
+      
+       References to subplan outputs are now always shown correctly,
+       instead of using ?columnN?
+       for complicated cases.
+      
+     
+
+     
+      
+       Limit the amount of information reported when a user is dropped
+       (Alvaro)
+      
+
+      
+       Previously, dropping (or attempting to drop) a user who owned many
+       objects could result in large NOTICE or
+       ERROR messages listing all these objects; this
+       caused problems for some client applications.  The length of the
+       message is now limited, although a full list is still sent to the
+       server log.
+      
+     
+
+    
+
+   
+
+   
+    Data Types
+    
+
+     
+      
+       Support for the SQL/XML standard, including new operators and an
+       XML data type (Nikolay Samokhvalov, Pavel Stehule, Peter)
+      
+     
+
+     
+      
+       Enumerated data types (ENUM) (Tom Dunstan)
+      
+
+      
+       This feature provides convenient support for fields that have a
+       small, fixed set of allowed values.  An example of creating an
+       ENUM type is
+       CREATE TYPE mood AS ENUM ('sad', 'ok', 'happy').
+      
+     
+
+     
+      
+       Universally Unique Identifier (UUID) data type (Gevik
+       Babakhani, Neil)
+      
+
+      
+       This closely matches RFC 4122.
+      
+     
+
+     
+      
+       Widen the MONEY data type to 64 bits (D'Arcy Cain)
+      
+
+      
+       This greatly increases the range of supported MONEY
+       values.
+      
+     
+
+     
+      
+       Fix float4/float8 to handle
+       Infinity and NAN (Not A Number)
+       consistently (Bruce)
+      
+
+      
+       The code formerly was not consistent about distinguishing
+       Infinity from overflow conditions.
+      
+     
+
+     
+      
+       Allow leading and trailing whitespace during input of
+       boolean values (Neil)
+      
+     
+
+     
+      
+       Prevent COPY from using digits and lowercase letters as
+       delimiters (Tom)
+      
+     
+
+    
+
+   
+
+   
+    Functions
+    
+
+     
+      
+       Add new regular expression functions
+       regexp_matches(),
+       regexp_split_to_array(), and
+       regexp_split_to_table() (Jeremy Drake, Neil)
+      
+
+      
+       These functions provide extraction of regular expression
+       subexpressions and allow splitting a string using a POSIX regular
+       expression.
+      
+     
+
+     
+      
+       Add lo_truncate() for large object truncation
+       (Kris Jurka)
+      
+     
+
+     
+      
+       Implement width_bucket() for the float8
+       data type (Neil)
+      
+     
+
+     
+      
+       Add pg_stat_clear_snapshot() to discard
+       statistics snapshots collected during the current transaction
+       (Tom)
+      
+
+      
+       The first request for statistics in a transaction takes a statistics
+       snapshot that does not change during the transaction.  This function
+       allows the snapshot to be discarded and a new snapshot loaded during
+       the next statistics query. This is particularly useful for PL/PgSQL
+       functions, which are confined to a single transaction.
+      
+     
+
+     
+      
+       Add isodow option to EXTRACT() and
+       date_part() (Bruce)
+      
+
+      
+       This returns the day of the week, with Sunday as seven.
+       (dow returns Sunday as zero.)
+      
+     
+
+     
+      
+       Add ID (ISO day of week) and IDDD (ISO
+       day of year) format codes for to_char(),
+       to_date(), and to_timestamp() (Brendan
+       Jurd)
+      
+     
+
+     
+      
+       Make to_timestamp() and to_date()
+       assume TM (trim) option for potentially
+       variable-width fields (Bruce)
+      
+
+      
+       This matches Oracle's behavior.
+      
+     
+
+     
+      
+       Fix off-by-one conversion error in
+       to_date()/to_timestamp()
+       D (non-ISO day of week) fields (Bruce)
+      
+     
+
+     
+      
+       Make setseed() return void, rather than a
+       useless integer value (Neil)
+      
+     
+
+     
+      
+       Add a hash function for NUMERIC (Neil)
+      
+
+      
+       This allows hash indexes and hash-based plans to be used with
+       NUMERIC columns.
+      
+     
+
+     
+      
+       Improve efficiency of
+       LIKE/ILIKE, especially for
+       multi-byte character sets like UTF-8 (Andrew, Itagaki Takahiro)
+      
+     
+
+     
+      
+       Make currtid() functions require
+       SELECT privileges on the target table (Tom)
+      
+     
+
+     
+      
+       Add several txid_*() functions to query
+       active transaction IDs (Jan)
+      
+
+      
+       This is useful for various replication solutions.
+      
+     
+
+    
+
+   
+
+   
+    PL/PgSQL Server-Side Language
+    
+
+     
+      
+       Add scrollable cursor support, including directional control in
+       FETCH (Pavel Stehule)
+      
+     
+
+     
+      
+       Allow IN as an alternative to
+       FROM in PL/PgSQL's FETCH
+       statement, for consistency with the backend's
+       FETCH command (Pavel Stehule)
+      
+     
+
+     
+      
+       Add MOVE to PL/PgSQL (Magnus, Pavel Stehule,
+       Neil)
+      
+     
+
+     
+      
+       Implement RETURN QUERY (Pavel Stehule, Neil)
+      
+
+      
+       This adds convenient syntax for PL/PgSQL set-returning functions
+       that want to return the result of a query.  RETURN QUERY
+       is easier and more efficient than a loop
+       around RETURN NEXT.
+      
+     
+
+     
+      
+       Allow function parameter names to be qualified with the
+       function's name (Tom)
+      
+
+      
+       For example, myfunc.myvar. This is particularly
+       useful for specifying variables in a query where the variable
+       name might match a column name.
+      
+     
+
+     
+      
+       Make qualification of variables with block labels work properly (Tom)
+      
+
+      
+       Formerly, outer-level block labels could unexpectedly interfere with
+       recognition of inner-level record or row references.
+      
+     
+
+     
+      
+       Tighten requirements for FOR loop
+       STEP values (Tom)
+      
+
+      
+       Prevent non-positive STEP values, and handle
+       loop overflows.
+      
+     
+
+     
+      
+       Improve accuracy when reporting syntax error locations (Tom)
+      
+     
+
+    
+
+   
+
+   
+    Other Server-Side Languages
+    
+
+     
+      
+       Allow type-name arguments to PL/Perl
+       spi_prepare() to be data type aliases in
+       addition to names found in pg_type (Andrew)
+      
+     
+
+     
+      
+       Allow type-name arguments to PL/Python
+       plpy.prepare() to be data type aliases in
+       addition to names found in pg_type (Andrew)
+      
+     
+
+     
+      
+       Allow type-name arguments to PL/Tcl spi_prepare to
+       be data type aliases in addition to names found in
+       pg_type (Andrew)
+      
+     
+
+     
+      
+       Enable PL/PythonU to compile on Python 2.5 (Marko Kreen)
+      
+     
+
+     
+      
+       Support a true PL/Python boolean type in compatible Python versions
+       (Python 2.3 and later) (Marko Kreen)
+      
+     
+
+     
+      
+       Fix PL/Tcl problems with thread-enabled libtcl spawning
+       multiple threads within the backend (Steve Marshall, Paul Bayer,
+       Doug Knight)
+      
+
+      
+       This caused all sorts of unpleasantness.
+      
+     
+
+    
+
+   
+
+   
+    <link linkend="APP-PSQL"><application>psql</></link>
+    
+
+     
+      
+       List disabled triggers separately in \d output
+       (Brendan Jurd)
+      
+     
+
+     
+      
+       In \d patterns, always match $
+       literally (Tom)
+      
+     
+
+     
+      
+       Show aggregate return types in \da output
+       (Greg Sabino Mullane)
+      
+     
+
+     
+      
+       Add the function's volatility status to the output of
+       \df+ (Neil)
+      
+     
+
+     
+      
+       Add \prompt capability (Chad Wagner)
+      
+     
+
+     
+      
+       Allow \pset\t, and
+       \x to specify on or off,
+       rather than just toggling (Chad Wagner)
+      
+     
+
+     
+      
+       Add \sleep capability (Jan)
+      
+     
+
+     
+      
+       Enable \timing output for \copy (Andrew)
+      
+     
+
+     
+      
+       Improve \timing resolution on Windows
+       (Itagaki Takahiro)
+      
+     
+
+     
+      
+       Flush \o output after each backslash command (Tom)
+      
+     
+
+     
+      
+       Correctly detect and report errors while reading a -f
+       input file (Peter)
+      
+     
+
+     
+      
+       Remove -u option (this option has long been deprecated)
+       (Tom)
+      
+     
+
+    
+
+   
+
+   
+    <link linkend="APP-PGDUMP"><application>pg_dump</></link>
+    
+
+     
+      
+       Add --tablespaces-only and --roles-only
+       options to pg_dumpall (Dave Page)
+      
+     
+
+     
+      
+       Add an output file option to
+       pg_dumpall (Dave Page)
+      
+
+      
+       This is primarily useful on Windows, where output redirection of
+       child pg_dump processes does not work.
+      
+     
+
+     
+      
+       Allow pg_dumpall to accept an initial-connection
+       database name rather than the default
+       template1 (Dave Page)
+      
+     
+
+     
+      
+       In -n and -t switches, always match
+       $ literally (Tom)
+      
+     
+
+     
+      
+       Improve performance when a database has thousands of objects (Tom)
+      
+     
+
+     
+      
+       Remove -u option (this option has long been deprecated)
+       (Tom)
+      
+     
+
+    
+
+   
+
+   
+    Other Client Applications
+    
+
+     
+      
+       In initdb, allow the location of the
+       pg_xlog directory to be specified
+       (Euler Taveira de Oliveira)
+      
+     
+
+     
+      
+       Enable server core dump generation in pg_regress
+       on supported operating systems (Andrew)
+      
+     
+
+     
+      
+       Add a -t (timeout) parameter to pg_ctl
+       (Bruce)
+      
+
+      
+       This controls how long pg_ctl will wait when waiting
+       for server startup or shutdown.  Formerly the timeout was hard-wired
+       as 60 seconds.
+      
+     
+
+     
+      
+       Add a pg_ctl option to control generation
+       of server core dumps (Andrew)
+      
+     
+
+     
+      
+       Allow Control-C to cancel clusterdb,
+       reindexdb, and vacuumdb (Itagaki
+       Takahiro, Magnus)
+      
+     
+
+     
+      
+       Suppress command tag output for createdb,
+       createuser, dropdb, and
+       dropuser (Peter)
+      
+
+      
+       The --quiet option is ignored and will be removed in 8.4.
+       Progress messages when acting on all databases now go to stdout
+       instead of stderr because they are not actually errors.
+      
+     
+
+    
+
+   
+
+   
+    <link linkend="libpq"><application>libpq</></link>
+    
+
+     
+      
+       Interpret the dbName parameter of
+       PQsetdbLogin() as a conninfo string if
+       it contains an equals sign (Andrew)
+      
+
+      
+       This allows use of conninfo strings in client
+       programs that still use PQsetdbLogin().
+      
+     
+
+     
+      
+       Support a global SSL configuration file (Victor
+       Wagner)
+      
+     
+
+     
+      
+       Add environment variable PGSSLKEY to control
+       SSL hardware keys (Victor Wagner)
+      
+     
+
+     
+      
+       Add lo_truncate() for large object
+       truncation (Kris Jurka)
+      
+     
+
+     
+      
+       Add PQconnectionNeedsPassword() that returns
+       true if the server required a password but none was supplied
+       (Joe Conway, Tom)
+      
+
+      
+       If this returns true after a failed connection attempt, a client
+       application should prompt the user for a password.  In the past
+       applications have had to check for a specific error message string to
+       decide whether a password is needed; that approach is now
+       deprecated.
+      
+     
+
+     
+      
+       Add PQconnectionUsedPassword() that returns
+       true if the supplied password was actually used
+       (Joe Conway, Tom)
+      
+
+      
+       This is useful in some security contexts where it is important
+       to know whether a user-supplied password is actually valid.
+      
+     
+
+    
+
+   
+
+   
+    <link linkend="ecpg"><application>ecpg</></link>
+    
+
+     
+      
+       Use V3 frontend/backend protocol (Michael)
+      
+
+      
+       This adds support for server-side prepared statements.
+      
+     
+
+     
+      
+       Use native threads, instead of pthreads, on Windows (Magnus)
+      
+     
+
+     
+      
+       Improve thread-safety of ecpglib (Itagaki Takahiro)
+      
+     
+
+     
+      
+       Make the ecpg libraries export only necessary API symbols (Michael)
+      
+     
+
+    
+
+   
+
+   
+    <application>Windows</> Port
+    
+
+     
+      
+       Allow the whole PostgreSQL distribution to be compiled
+       with Microsoft Visual C++ (Magnus and others)
+      
+
+      
+       This allows Windows-based developers to use familiar development
+       and debugging tools.
+       Windows executables made with Visual C++ might also have better
+       stability and performance than those made with other tool sets.
+       The client-only Visual C++ build scripts have been removed.
+      
+     
+
+     
+      
+       Drastically reduce postmaster's memory usage when it has many child
+       processes (Magnus)
+      
+     
+
+     
+      
+       Allow regression tests to be started by an administrative
+       user (Magnus)
+      
+     
+
+     
+      
+       Add native shared memory implementation (Magnus)
+      
+     
+
+    
+
+   
+
+   
+    Server Programming Interface (<acronym>SPI</>)
+    
+
+     
+      
+       Add cursor-related functionality in SPI (Pavel Stehule)
+      
+
+      
+       Allow access to the cursor-related planning options, and add
+       FETCH/MOVE routines.
+      
+     
+
+     
+      
+       Allow execution of cursor commands through
+       SPI_execute (Tom)
+      
+
+      
+       The macro SPI_ERROR_CURSOR still exists but will
+       never be returned.
+      
+     
+
+     
+      
+       SPI plan pointers are now declared as SPIPlanPtr instead of
+       void * (Tom)
+      
+
+      
+       This does not break application code, but switching is
+       recommended to help catch simple programming mistakes.
+      
+     
+
+    
+
+   
+
+   
+    Build Options
+    
+
+     
+      
+       Add configure option --enable-profiling
+       to enable code profiling (works only with gcc)
+       (Korry Douglas and Nikhil Sontakke)
+      
+     
+
+     
+      
+       Add configure option --with-system-tzdata
+       to use the operating system's time zone database (Peter)
+      
+     
+
+     
+      
+       Fix PGXS so extensions can be built against PostgreSQL
+       installations whose pg_config program does not
+       appear first in the PATH (Tom)
+      
+     
+
+     
+      
+       Support gmake draft when building the
+       SGML documentation (Bruce)
+      
+
+      
+       Unless draft is used, the documentation build will
+       now be repeated if necessary to ensure the index is up-to-date.
+      
+     
+
+    
+
+   
+
+   
+    Source Code
+    
+
+     
+      
+       Rename macro DLLIMPORT to PGDLLIMPORT to
+       avoid conflicting with third party includes (like Tcl) that
+       define DLLIMPORT (Magnus)
+      
+     
+
+     
+      
+       Create operator families to improve planning of
+       queries involving cross-data-type comparisons (Tom)
+      
+     
+
+     
+      
+       Update GIN extractQuery() API to allow signalling
+       that nothing can satisfy the query (Teodor)
+      
+     
+
+     
+      
+       Move NAMEDATALEN definition from
+       postgres_ext.h to pg_config_manual.h
+       (Peter)
+      
+     
+
+     
+      
+       Provide strlcpy() and
+       strlcat() on all platforms, and replace
+       error-prone uses of strncpy(),
+       strncat(), etc (Peter)
+      
+     
+
+     
+      
+       Create hooks to let an external plugin monitor (or even replace) the
+       planner and create plans for hypothetical situations (Gurjeet
+       Singh, Tom)
+      
+     
+
+     
+      
+       Create a function variable join_search_hook to let plugins
+       override the join search order portion of the planner (Julius
+       Stroffek)
+      
+     
+
+     
+      
+       Add tas() support for Renesas' M32R processor
+       (Kazuhiro Inaoka)
+      
+     
+
+     
+      
+       quote_identifier() and
+       pg_dump no longer quote keywords that are
+       unreserved according to the grammar (Tom)
+      
+     
+
+     
+      
+       Change the on-disk representation of the NUMERIC
+       data type so that the sign_dscale word comes
+       before the weight (Tom)
+      
+     
+
+     
+      
+       Use SYSV semaphores rather than POSIX on Darwin
+       >= 6.0, i.e., OS X 10.2 and up (Chris Marcellino)
+      
+     
+
+     
+      
+       Add acronym and 
+       linkend="creating-cluster-nfs">NFS documentation
+       sections (Bruce)
+      
+     
+
+     
+      
+       "Postgres" is now documented as an accepted alias for
+       "PostgreSQL" (Peter)
+      
+     
+
+     
+      
+       Add documentation about preventing database server spoofing when
+       the server is down (Bruce)
+      
+     
+
+    
+
+   
+
+   
+    Contrib
+    
+
+     
+      
+       Move contrib README content into the
+       main PostgreSQL documentation (Albert Cervera i
+       Areny)
+      
+     
+
+     
+      
+       Add contrib/pageinspect module for low-level
+       page inspection (Simon, Heikki)
+      
+     
+
+     
+      
+       Add contrib/pg_standby module for controlling
+       warm standby operation (Simon)
+      
+     
+
+     
+      
+       Add contrib/uuid-ossp module for generating
+       UUID values using the OSSP UUID library (Peter)
+      
+
+      
+       Use configure
+       --with-ossp-uuid to activate. This takes
+       advantage of the new UUID builtin type.
+      
+     
+
+     
+      
+       Add contrib/dict_int,
+       contrib/dict_xsyn, and
+       contrib/test_parser modules to provide
+       sample add-on text search dictionary templates and parsers
+       (Sergey Karpov)
+      
+     
+
+     
+      
+       Allow contrib/pgbench to set the fillfactor (Pavan
+       Deolasee)
+      
+     
+
+     
+      
+       Add timestamps to contrib/pgbench -l
+       (Greg Smith)
+      
+     
+
+     
+      
+       Add usage count statistics to
+       contrib/pgbuffercache (Greg Smith)
+      
+     
+
+     
+      
+       Add GIN support for contrib/hstore (Teodor)
+      
+     
+
+     
+      
+       Add GIN support for contrib/pg_trgm (Guillaume Smet, Teodor)
+      
+     
+
+     
+      
+       Update OS/X startup scripts in
+       contrib/start-scripts (Mark Cotner, David
+       Fetter)
+      
+     
+
+     
+      
+       Restrict pgrowlocks() and
+       dblink_get_pkey() to users who have
+       SELECT privilege on the target table (Tom)
+      
+     
+
+     
+      
+       Restrict contrib/pgstattuple functions to
+       superusers (Tom)
+      
+     
+
+     
+      
+       contrib/xml2 is deprecated and planned for
+       removal in 8.4 (Peter)
+      
+
+      
+       The new XML support in core PostgreSQL supersedes this module.
+      
+     
+
+    
+
+   
+  
diff --git a/doc/src/sgml/release-8.4.sgml b/doc/src/sgml/release-8.4.sgml
new file mode 100644 (file)
index 0000000..be3d1d9
--- /dev/null
@@ -0,0 +1,3208 @@
+
+
+
+  Release 8.4
+
+  
+   Release date
+   2009-??-??, ITEMS CURRENT AS OF 2009-04-08
+  
+
+  
+   Overview
+
+   
+    After many years of development, PostgreSQL has
+    become feature-complete in many areas.   This release shows a
+    targeted approach to adding features (e.g., authentication,
+    monitoring, space reuse), and adds capabilities defined in the
+    later SQL standards.  The major areas of enhancement are:
+   
+
+   
+
+    
+
+    
+     
+      Windowing Functions
+     
+    
+
+    
+     
+      Common Table Expressions and Recursive Joins
+     
+    
+
+    
+     
+      Default and variadic parameters for functions
+     
+    
+
+    
+     
+      Parallel Restore
+     
+    
+
+    
+     
+      Column Permissions
+     
+    
+
+    
+     
+      Per-database locale settings
+     
+    
+
+    
+     
+      Improved hash indexes
+     
+    
+
+    
+     
+      Improved join performance for EXISTS and NOT EXISTS queries
+     
+    
+
+    
+     
+      Easier-to-use Warm Standby
+     
+    
+
+    
+     
+      Automatic sizing of the Free Space Map
+     
+    
+
+    
+     
+      Visibility Map (greatly reduces vacuum overhead for slowly-changing tables)
+     
+    
+
+    
+     
+      Version-aware psql (backslash commands work against older servers)
+     
+    
+
+    
+     
+      Support SSL certificates for user authentication
+     
+    
+
+    
+     
+      Per-function runtime statistics
+     
+    
+
+    
+     
+      Easy editing of functions in psql
+     
+    
+
+    
+     
+      New contrib modules: pg_stat_statements, auto_explain, citext, btree_gin
+     
+    
+
+   
+
+   
+    The above items are explained in more detail in the sections below.
+   
+
+  
+
+  
+   Migration to Version 8.4
+
+   
+    A dump/restore using pg_dump is
+    required for those wishing to migrate data from any previous
+    release.
+   
+
+   
+    Observe the following incompatibilities:
+   
+
+   
+    General
+    
+
+     
+      
+       Use 64-bit integer datetimes by default (Neil Conway)
+      
+
+      
+       Previously this was selected by configure's
+       
+       the old behavior, build with 
+      
+     
+
+     
+      
+       Remove ipcclean utility command (Bruce)
+      
+
+      
+       The utility only worked on a few platforms.  Users should use
+       their operating system tools instead.
+      
+     
+
+    
+
+   
+
+   
+    Server Settings
+    
+
+     
+      
+       Change default setting for
+       log_min_messages to warning (previously
+       it was notice) to reduce log file volume (Tom)
+      
+     
+
+     
+      
+       Make debug_print_parse, debug_print_rewritten,
+       and debug_print_plan
+       output appear at LOG message level, not
+       DEBUG1 as formerly (Tom)
+      
+     
+
+     
+      
+       Make debug_pretty_print default to on (Tom)
+      
+     
+
+     
+      
+       Remove explain_pretty_print parameter (no longer needed) (Tom)
+      
+     
+
+     
+      
+       Make log_temp_files settable by superusers only, like other
+       logging options (Simon Riggs)
+      
+     
+
+     
+      
+       Remove automatic appending of the epoch timestamp when no %
+       escapes are present in log_filename (Robert Haas)
+      
+
+      
+       This change was made because some users wanted a fixed log filename,
+       for use with an external log rotation tool.
+      
+     
+
+     
+      
+       Remove log_restartpoints from recovery.conf;
+       instead use log_checkpoints (Simon)
+      
+     
+
+     
+      
+       Remove support for the (insecure) crypt authentication method
+       (Magnus)
+      
+
+      
+       This effectively obsoletes pre-PostgreSQL 7.2 client
+       libraries, as there is no longer any non-plaintext password method that
+       they can use.
+      
+     
+
+     
+      
+       Remove krb_realm and krb_server_hostname;
+       these are now set in pg_hba.conf instead (Magnus)
+      
+     
+
+     
+      
+       There are also significant changes in 
+       linkend="release-8-4-pg-hba-conf">pg_hba.conf,
+       as described below.
+      
+     
+
+    
+
+   
+
+   
+    Queries
+
+    
+
+     
+      
+       Change TRUNCATE and LOCK to
+       apply to child tables of the specified table(s) (Peter)
+      
+
+      
+       These commands now accept an ONLY option that prevents
+       processing child tables; this option must be used if the old
+       behavior is needed.
+      
+     
+
+     
+      
+       SELECT DISTINCT and
+       UNION/INTERSECT/EXCEPT
+       no longer always produce sorted output (Tom)
+      
+
+      
+       Previously, these types of queries always removed duplicate rows
+       by means of Sort/Unique processing (i.e., sort then remove adjacent
+       duplicates).  Now they can be implemented by hashing, which will not
+       produce sorted output.  If an application relied on the output being
+       in sorted order, the recommended fix is to add an ORDER BY
+       clause.  As a short-term workaround, the previous behavior can be
+       restored by disabling enable_hashagg, but that is a very
+       performance-expensive fix.  SELECT DISTINCT ON never uses
+       hashing, however, so its behavior is unchanged.
+      
+     
+
+     
+      
+       Force child tables to inherit CHECK constraints from parents
+       (Alex Hunsaker, Nikhil Sontakke, Tom)
+      
+
+      
+       Formerly it was possible to drop such a constraint from a child
+       table, allowing rows that violate the constraint to be visible
+       when scanning the parent table.  This was deemed inconsistent,
+       as well as contrary to SQL standard.
+      
+     
+
+     
+      
+       Disallow negative LIMIT or OFFSET
+       values, rather than treating them as zero (Simon)
+      
+     
+
+     
+      
+       Disallow LOCK TABLE outside a transaction block
+       (Tom)
+      
+
+      
+       Such an operation is useless because the lock would be released
+       immediately.
+      
+     
+
+     
+      
+       Sequences now contain an additional start_value column
+       (Zoltan Boszormenyi)
+      
+
+      
+       This supports ALTER SEQUENCE ... RESTART.
+      
+     
+
+    
+
+   
+
+
+   
+    Functions and Operators
+
+    
+
+     
+      
+       Make numeric zero raised to a fractional power return
+       0, rather than throwing an error, and make
+       numeric zero raised to the zero power return 1,
+       rather than error (Bruce)
+      
+
+      
+       This matches the longstanding float8 behavior.
+      
+     
+
+     
+      
+       Allow unary minus of floating-point values to produce minus zero (Tom)
+      
+
+      
+       The changed behavior is more IEEE-standard
+       compliant.
+      
+     
+
+     
+      
+       Throw an error if an escape character is the last character in
+       a LIKE pattern (i.e., it has nothing to escape) (Tom)
+      
+
+      
+       Previously, such an escape character was silently ignored,
+       thus possibly masking application logic errors.
+      
+     
+
+     
+      
+       Remove ~=~ and ~<>~ operators
+       formerly used for LIKE index comparisons (Tom)
+      
+
+      
+       Pattern indexes now use the regular equality operator.
+      
+     
+
+     
+      
+       xpath() now passes its arguments to libxml
+       without any changes (Andrew)
+      
+
+      
+       This means that the XML argument must be a well-formed XML document.
+       The previous coding attempted to allow XML fragments, but it did not
+       work well.
+      
+     
+
+     
+      
+       Make xmlelement() format attribute values just like
+       content values (Peter)
+      
+
+      
+       Previously, attribute values were formatted according to the
+       normal SQL output behavior, which is sometimes at odds with
+       XML rules.
+      
+     
+
+     
+      
+       Adopt a faster algorithm for hash functions (Kenneth Marshall,
+       based on work of Bob Jenkins)
+      
+
+      
+       Many of the built-in hash functions now deliver different results on
+       little-endian and big-endian platforms.
+      
+     
+
+    
+
+    
+     Temporal Functions and Operators
+
+     
+
+      
+       
+        DateStyle no longer controls interval output
+        formatting; instead there is a new variable IntervalStyle
+        (Ron Mayer)
+       
+      
+
+      
+       
+        Improve consistency of handling of fractional seconds in
+        timestamp and interval output (Ron Mayer)
+       
+
+       
+        This may result in displaying a different number of fractional
+        digits than before, or rounding instead of truncating.
+       
+      
+
+      
+       
+        Make to_char()'s localized month/day names depend
+        on LC_TIME, not LC_MESSAGES (Euler
+        Taveira de Oliveira)
+       
+      
+
+      
+       
+        Cause to_date() and to_timestamp()
+        to more consistently report errors for invalid input (Brendan
+        Jurd)
+       
+
+       
+        Previous versions would often ignore or silently misread input
+        that did not match the format string.  Such cases will now
+        result in an error.
+       
+      
+
+      
+       
+        Fix to_timestamp() to not require upper/lower case
+        matching for meridian (AM/PM) and era
+        (BC/AD) format designations  (Brendan
+        Jurd)
+       
+
+       
+        For example, input value ad now matches the format
+        string AD.
+       
+      
+
+     
+
+    
+
+   
+
+  
+
+  
+   Changes
+
+   
+    Below you will find a detailed account of the changes between
+    PostgreSQL 8.4 and the previous major
+    release.
+   
+
+   
+    Performance
+    
+
+     
+      
+       Improve optimizer statistics calculations (Jan Urbanski, Tom)
+      
+
+      
+       In particular, estimates for full-text-search operators are
+       greatly improved.
+      
+     
+
+     
+      
+       Allow SELECT DISTINCT and
+       UNION/INTERSECT/EXCEPT to
+       use hashing (Tom)
+      
+
+      
+       This means that these types of queries no longer automatically
+       produce sorted output.
+      
+     
+
+     
+      
+       Create explicit concepts of semi-joins and anti-joins (Tom)
+      
+
+      
+       This work formalizes our previous ad-hoc treatment of IN
+       (SELECT ...) clauses, and extends it to EXISTS and
+       NOT EXISTS clauses.  It should result in significantly
+       better planning of EXISTS and NOT EXISTS
+       queries.  In general, logically equivalent IN and
+       EXISTS clauses should now have similar performance,
+       whereas previously IN often won.
+      
+     
+
+     
+      
+       Improve optimization of sub-selects beneath outer joins (Tom)
+      
+
+      
+       Formerly, a sub-select or view could not be optimized very well if it
+       appeared within the nullable side of an outer join and contained
+       non-strict expressions (for instance, constants) in its result list.
+      
+     
+
+     
+      
+       Improve the performance of text_position() and
+       related functions by using Boyer-Moore-Horspool searching (David
+       Rowley)
+      
+
+      
+       This is particularly helpful for long search patterns.
+      
+     
+
+     
+      
+       Reduce I/O load of writing the statistics collection file
+       by writing the file only when requested (Martin Pihlak)
+      
+     
+
+     
+      
+       Improve performance for bulk inserts (Robert Haas, Simon)
+      
+     
+
+     
+      
+       Increase the default value of default_statistics_target
+       from 10 to 100 (Greg Sabino Mullane,
+       Tom)
+      
+
+      
+       The maximum value was also increased from 1000 to
+       10000.
+      
+     
+
+     
+      
+       Perform constraint_exclusion checking by default
+       in queries involving inheritance or UNION ALL (Tom)
+      
+
+      
+       A new constraint_exclusion setting,
+       partition, was added to specify this behavior.
+      
+     
+
+     
+      
+       Allow I/O read-ahead for bitmap index scans (Greg Stark)
+      
+
+      
+       The amount of read-ahead is controlled by
+       effective_io_concurrency.  This feature is available only
+       if the kernel has posix_fadvise() support.
+      
+     
+
+     
+      
+       Inline simple set-returning SQL functions in
+       FROM clauses (Richard Rowell)
+      
+     
+
+     
+      
+       Improve performance of multi-batch hash joins by providing a special
+       case for join key values that are especially common in the outer
+       relation (Bryce Cutt, Ramon Lawrence)
+      
+     
+
+     
+      
+       Reduce volume of temporary data in multi-batch hash joins
+       by suppressing physical tlist optimization (Michael
+       Henderson, Ramon Lawrence)
+      
+     
+
+     
+      
+       Avoid waiting for idle-in-transaction sessions during
+       CREATE INDEX CONCURRENTLY (Simon)
+      
+     
+
+     
+      
+       Improve performance of shared cache invalidation (Tom)
+      
+     
+
+    
+
+   
+
+   
+    Server
+
+    
+     Settings
+
+     
+
+      
+       
+        Convert many postgresql.conf settings to enumerated
+        values so that pg_settings can display the valid
+        values (Magnus)
+       
+      
+
+      
+       
+        Add cursor_tuple_fraction parameter to control the
+        fraction of a cursor's rows that the planner assumes will be
+        fetched (Robert Hell)
+       
+      
+
+      
+       
+        Allow underscores in the names of custom variable
+        classes in postgresql.conf (Tom)
+       
+      
+
+     
+
+    
+
+    
+     Authentication
+     
+
+      
+       
+        Report appropriate error message for combination of MD5
+        authentication and db_user_namespace enabled (Bruce)
+       
+      
+
+      
+       
+        Support regular expressions in pg_ident.conf
+        (Magnus)
+       
+      
+
+      
+       
+        Allow Kerberos/GSSAPI parameters
+        to be changed without restarting the postmaster (Magnus)
+       
+      
+
+     
+
+    
+
+    
+     <filename>pg_hba.conf</>
+     
+
+      
+       
+        Parse pg_hba.conf fully when it is loaded,
+        so that errors are reported immediately (Magnus)
+       
+
+       
+        Previously, most errors in the file wouldn't be detected until clients
+        tried to connect, so an erroneous file could render the system
+        unusable.  With the new behavior, if an error is detected during
+        reload then the bad file is rejected and the postmaster continues
+        to use its old copy.
+       
+      
+
+      
+       
+        Show all parsing errors in pg_hba.conf instead of
+        aborting after the first one (Selena Deckelmann)
+       
+      
+
+      
+       
+        Remove the ident sameuser option, instead making that
+        behavior the default if no usermap is specified (Magnus)
+       
+      
+
+      
+       
+        Change all authentication options to use name=value
+        syntax (Magnus)
+       
+      
+
+      
+       
+        Allow a usermap parameter for all external authentication methods
+        (Magnus)
+       
+
+       
+        Previously a usermap was only supported for ident
+        authentication.
+       
+      
+
+      
+       
+        Add clientcert option to control requesting of a
+        client certificate (Magnus)
+       
+
+       
+        Previously this was controlled by the presence of a root
+        certificate file in the server's data directory.
+       
+      
+
+      
+       
+        Add cert authentication method to allow
+        user authentication via SSL certificates
+        (Magnus)
+       
+
+       
+        Previously SSL certificates could only verify that
+        the client had access to a certificate, not authenticate a
+        user.
+       
+      
+
+      
+       
+        Allow krb5, gssapi and sspi
+        realm and krb5 host settings to be specified in
+        pg_hba.conf (Magnus)
+       
+
+       
+        These override the settings in postgresql.conf.
+       
+      
+
+      
+       
+        Add include_realm parameter for krb5,
+        gssapi, and sspi methods (Magnus)
+       
+
+       
+        This allows identical usernames from different realms to be
+        authenticated as different database users using usermaps.
+       
+      
+
+      
+       
+        Support ident authentication over Unix-domain sockets
+        on Solaris (Garick Hamlin)
+       
+      
+
+     
+
+    
+
+    
+     Continuous Archiving
+     
+
+      
+       
+        Provide an option to pg_start_backup() to force its
+        implied checkpoint to finish as quickly as possible (Tom)
+       
+
+       
+        The default behavior avoids excess I/O consumption, but that is
+        pointless if no concurrent query activity is going on.
+       
+      
+
+      
+       
+        Make pg_stop_backup() wait for modified WAL
+        files to be archived (Simon)
+       
+
+       
+        This guarantees that the backup is valid at the time
+        pg_stop_backup() completes.
+       
+      
+
+      
+       
+        Delay smart shutdown while a continuous archiving base backup
+        is in progress (Laurenz Albe)
+       
+      
+
+      
+       
+        Cancel a continuous archiving base backup if fast shutdown
+        is requested (Laurenz Albe)
+       
+      
+
+      
+       
+        Allow recovery.conf boolean variables to take the
+        same range of string values as postgresql.conf
+        boolean variables
+        (Bruce)
+       
+      
+
+     
+
+    
+
+    
+     Monitoring
+     
+
+      
+       
+        Add pg_conf_load_time() to report when
+        the PostgreSQL configuration files were last loaded
+        (George Gensure)
+       
+      
+
+      
+       
+        Add pg_terminate_backend() to safely terminate a
+        backend (the SIGTERM signal works also) (Tom, Bruce)
+       
+
+       
+        While it's always been possible to SIGTERM a single
+        backend, this was previously considered unsupported; and testing
+        of the case found some bugs that are now fixed.
+       
+      
+
+      
+       
+        Add ability to track user-defined functions' call counts and
+        runtimes (Martin Pihlak)
+       
+
+       
+        Function statistics appear in a new system view,
+        pg_stat_user_functions.  Tracking is controlled
+        by the new parameter track_functions.
+       
+      
+
+      
+       
+        Allow specification of the maximum query string size in
+        pg_stat_activity via new
+        track_activity_query_size parameter (Thomas Lee)
+       
+      
+
+      
+       
+        Increase the maximum line length sent to syslog, in
+        hopes of improving performance (Tom)
+       
+      
+
+      
+       
+        Add read-only configuration variables segment_size,
+        wal_block_size, and wal_segment_size
+        (Bernd Helmle)
+       
+      
+
+      
+       
+        When reporting a deadlock, report the text of all queries involved
+        in the deadlock to the server log  (Itagaki Takahiro)
+       
+      
+
+      
+       
+        Add pg_stat_get_activity(pid) function to return
+        information about a specific process id (Magnus)
+       
+      
+
+      
+       
+        Allow the location of the server's statistics file to be specified
+        via stats_temp_directory (Magnus)
+       
+
+       
+        This allows the statistics file to be placed in a
+        RAM-resident directory to reduce I/O requirements.
+        On startup/shutdown, the file is copied to its traditional location
+        ($PGDATA/global/) so it is preserved across restarts.
+       
+      
+
+     
+
+    
+
+   
+
+   
+    Queries
+    
+
+     
+      
+       Add support for WINDOW functions (Hitoshi Harada)
+      
+     
+
+     
+      
+       Add support for WITH clauses (CTEs), including WITH
+       RECURSIVE (Yoshiyuki Asaba, Tatsuo Ishii, Tom)
+      
+     
+
+     
+      
+       Add TABLE command (Peter)
+      
+
+      
+       TABLE tablename is a SQL standard short-hand for
+       SELECT * FROM tablename.
+      
+     
+
+     
+      
+       Allow AS to be optional when specifying a
+       SELECT (or RETURNING) column output
+       label (Hiroshi Saito)
+      
+
+      
+       This works so long as the column label is not any
+       PostgreSQL keyword; otherwise AS is still
+       needed.
+      
+     
+
+     
+      
+       Support set-returning functions in SELECT result lists
+       even for functions that return their result via a tuplestore (Tom)
+      
+
+      
+       In particular, this means that functions written in PL/PgSQL
+       and other PL languages can now be called this way.
+      
+     
+
+     
+      
+       Support set-returning functions in the output of aggregation
+       and grouping queries (Tom)
+      
+     
+
+     
+      
+       Allow SELECT FOR UPDATE/SHARE to work
+       on inheritance trees (Tom)
+      
+     
+
+     
+      
+       Add infrastructure for SQL/MED (Martin Pihlak,
+       Peter)
+      
+
+      
+       There are no remote or external SQL/MED capabilities
+       yet, but this change provides a standardized and future-proof
+       system for managing connection information for modules like
+       dblink and plproxy.
+      
+     
+
+     
+      
+       Invalidate cached plans when referenced schemas, functions, operators,
+       or operator classes are modified (Martin Pihlak, Tom)
+      
+
+      
+       This improves the system's ability to respond to on-the-fly
+       DDL changes.
+      
+     
+     
+      
+       Allow comparison of composite types and allow arrays of
+       anonymous composite types (Tom)
+      
+
+      
+       This allows constructs such as
+       row(1, 1.1) = any (array[row(7, 7.7), row(1, 1.0)]).
+       This is particularly useful in recursive queries.
+      
+     
+
+     
+      
+       Add support for Unicode string literal and identifier specifications
+       using code points, e.g. U&'d\0061t\+000061'
+       (Peter)
+      
+     
+
+     
+      
+       Improve the parser's ability to report error locations (Tom)
+      
+
+      
+       An error location is now reported for many semantic errors,
+       such as mismatched datatypes, that previously could not be localized.
+      
+     
+
+    
+
+    
+     <command>TRUNCATE</>
+     
+
+      
+       
+        Support statement-level ON TRUNCATE triggers (Simon)
+       
+      
+
+      
+       
+        Add RESTART/CONTINUE IDENTITY options
+        for TRUNCATE TABLE
+        (Zoltan Boszormenyi)
+       
+
+       
+        The start value of a sequence can be changed by ALTER
+        SEQUENCE START WITH.
+       
+      
+
+      
+       
+        Allow TRUNCATE tab1, tab1 to succeed (Bruce)
+       
+      
+
+      
+       
+        Add a separate TRUNCATE permission (Robert Haas)
+       
+      
+
+     
+
+    
+
+    
+     <command>EXPLAIN</>
+     
+
+      
+       
+        Make EXPLAIN VERBOSE show the output columns of each
+        plan node (Tom)
+       
+
+       
+        Previously EXPLAIN VERBOSE output an internal
+        representation of the query plan.  (That behavior is now
+        available via debug_print_plan.)
+       
+      
+
+      
+       
+        Make EXPLAIN identify subplans and initplans with
+        individual labels (Tom)
+       
+      
+
+      
+       
+        Make EXPLAIN honor debug_print_plan (Tom)
+       
+      
+
+      
+       
+        Allow EXPLAIN on CREATE TABLE AS (Peter)
+       
+      
+
+     
+
+    
+
+    
+     <literal>LIMIT</>/<literal>OFFSET</>
+     
+
+      
+       
+        Allow sub-selects in LIMIT and OFFSET (Tom)
+       
+      
+
+      
+       
+        Add SQL-standard syntax for
+        LIMIT/OFFSET capabilities (Peter)
+       
+
+       
+        To wit,
+        OFFSET num {ROW|ROWS} FETCH {FIRST|NEXT} [num] {ROW|ROWS}
+        ONLY.
+       
+      
+
+     
+
+    
+
+   
+
+   
+    Object Manipulation
+    
+
+     
+      
+       Add support for column-level privileges (Stephen Frost, KaiGai
+       Kohei)
+      
+     
+
+     
+      
+       Refactor multi-object DROP operations to reduce the
+       need for CASCADE (Alex Hunsaker)
+      
+
+      
+       For example, if table B has a dependency on table
+       A, the command DROP TABLE A, B no longer
+       requires the CASCADE option.
+      
+     
+
+     
+      
+       Fix various problems with concurrent DROP commands
+       by ensuring that locks are taken before we begin to drop dependencies
+       of an object (Tom)
+      
+     
+
+     
+      
+       Improve reporting of dependencies during DROP
+       commands (Tom)
+      
+     
+
+     
+      
+       Add WITH [NO] DATA clause to CREATE TABLE
+       AS, per the SQL standard (Peter, Tom)
+      
+     
+
+     
+      
+       Add support for user-defined I/O conversion casts (Heikki)
+      
+     
+
+     
+      
+       Allow CREATE AGGREGATE to use an internal
+       transition datatype (Tom)
+      
+     
+
+     
+      
+       Add LIKE clause to CREATE TYPE (Tom)
+      
+
+      
+       This simplifies creation of data types that use the same internal
+       representation as an existing type.
+      
+     
+
+     
+      
+       Allow specification of the type category and preferred
+       status for user-defined base types (Tom)
+      
+
+      
+       This allows more control over the coercion behavior of user-defined
+       types.
+      
+     
+
+     
+      
+       Allow CREATE OR REPLACE VIEW to add columns to the
+       end of a view (Robert Haas)
+      
+     
+
+    
+
+    
+     <command>ALTER</>
+     
+
+      
+       
+        Add ALTER TYPE RENAME (Petr Jelinek)
+       
+      
+
+      
+       
+        Add ALTER SEQUENCE ... RESTART (with no parameter) to
+        reset a sequence to its initial value (Zoltan Boszormenyi)
+       
+      
+
+      
+       
+        Modify the ALTER TABLE syntax to allow all reasonable
+        combinations for tables, indexes, sequences, and views (Tom)
+       
+
+       
+        This change allows the following new syntaxes:
+
+        
+         
+          
+           ALTER SEQUENCE OWNER TO
+          
+         
+         
+          
+           ALTER VIEW ALTER COLUMN SET/DROP DEFAULT
+          
+         
+         
+          
+           ALTER VIEW OWNER TO
+          
+         
+         
+          
+           ALTER VIEW SET SCHEMA
+          
+         
+        
+
+        There is no actual new functionality here, but formerly
+        you had to say ALTER TABLE to do these things,
+        which was confusing.
+       
+      
+
+      
+       
+        Add support for the syntax ALTER TABLE ... ALTER COLUMN
+        ... SET DATA TYPE (Peter)
+       
+
+       
+        This is SQL-standard syntax for functionality that
+        was already supported.
+       
+      
+
+      
+       
+        Make ALTER TABLE SET WITHOUT OIDS rewrite the table
+        to physically remove OID values (Tom)
+       
+
+       
+        Also, add ALTER TABLE SET WITH OIDS to rewrite the
+        table to add OIDs.
+       
+      
+
+     
+
+    
+
+    
+     Database Manipulation
+     
+
+      
+       
+        Improve reporting of
+        CREATE/DROP/RENAME DATABASE
+        failure when uncommitted prepared transactions are the cause
+        (Tom)
+       
+      
+
+      
+       
+        Make LC_COLLATE and LC_CTYPE into
+        per-database settings (Radek Strnad, Heikki)
+       
+
+       
+        This makes collation similar to encoding, which was always
+        configurable per database.
+       
+      
+
+      
+       
+        Improve checks that the database encoding, collation
+        (LC_COLLATE), and character classes
+        (LC_CTYPE) match (Heikki)
+       
+      
+
+      
+       
+        Add ALTER DATABASE SET TABLESPACE to move a database
+        to a new tablespace (Guillaume Lelarge, Bernd Helmle)
+       
+      
+
+     
+
+    
+
+   
+
+   
+    Utility Operations
+
+    
+
+     
+      
+       Add a VERBOSE option to the CLUSTER command and
+       clusterdb (Jim Cox)
+      
+     
+
+     
+      
+       Decrease memory requirements for recording pending trigger
+       events (Tom)
+      
+     
+
+    
+
+    
+     Indexes
+     
+
+      
+       
+        Dramatically improve the speed of building and accessing hash
+        indexes (Tom Raney, Shreya Bhargava)
+       
+
+       
+        This allows hash indexes to be sometimes faster than btree
+        indexes.  However, hash indexes are still not crash-safe.
+       
+      
+
+      
+       
+        Make hash indexes store only the hash code, not the full value of
+        the indexed column (Xiao Meng)
+       
+
+       
+        This greatly reduces the size of hash indexes for long indexed
+        values, improving performance.
+       
+      
+
+      
+       
+        Implement fast update option for GIN indexes (Teodor, Oleg)
+       
+
+       
+        This option greatly improves update speed at a small penalty in search
+        speed.
+       
+      
+
+      
+       
+        xxx_pattern_ops indexes can now be used for simple
+        equality comparisons, not only for LIKE (Tom)
+       
+      
+
+     
+
+    
+
+    
+     Full Text Indexes
+     
+
+      
+       
+        Remove the requirement to use @@@ when doing
+        GIN weighted lookups on full text indexes (Tom, Teodor)
+       
+
+       
+        The normal @@ text search operator can be used
+        instead.
+       
+      
+
+      
+       
+        Add an optimizer selectivity function for @@ text
+        search operations (Jan Urbanski)
+       
+      
+
+      
+       
+        Allow prefix matching in full text searches (Teodor Sigaev,
+        Oleg Bartunov)
+       
+      
+
+      
+       
+        Support multi-column GIN indexes (Teodor Sigaev)
+       
+      
+
+      
+       
+        Improve support for Nepali language and Devanagari alphabet (Teodor)
+       
+      
+
+     
+
+    
+
+    
+     <command>VACUUM</>
+     
+
+      
+       
+        Track free space in separate per-relation fork files (Heikki)
+       
+
+       
+        Free space discovered by VACUUM is now recorded in
+        *_fsm files, rather than in a fixed-sized shared memory
+        area.  The max_fsm_pages and max_fsm_relations
+        settings have been removed, greatly simplifying administration of
+        free space management.
+       
+      
+
+      
+       
+        Add a visibility map to track pages that do not require
+        vacuuming (Heikki)
+       
+
+       
+        This allows VACUUM to avoid scanning all of
+        a table when only a portion of the table needs vacuuming.
+        The visibility map is stored in per-relation fork files.
+       
+      
+
+      
+       
+        Add vacuum_freeze_table_age parameter to control
+        when VACUUM should ignore the visibility map and
+        do a full table scan to freeze tuples (Heikki)
+       
+      
+
+      
+       
+        Track transaction snapshots more carefully (Alvaro)
+       
+
+       
+        This improves VACUUM's ability to reclaim space
+        in the presence of long-running transactions.
+       
+      
+
+      
+       
+        Add ability to specify per-relation autovacuum and TOAST
+        parameters in CREATE TABLE (Alvaro, Euler Taveira de
+        Oliveira)
+       
+
+       
+        Autovacuum options used to be stored in a system table.
+       
+      
+
+      
+       
+        Add --freeze option to vacuumdb
+        (Bruce)
+       
+      
+
+     
+
+    
+
+   
+
+   
+    Data Types
+    
+
+     
+      
+       Add a CaseSensitive option for text search synonym
+       dictionaries (Simon)
+      
+     
+
+     
+      
+       Improve the precision of NUMERIC division (Tom)
+      
+     
+
+     
+      
+       Add basic arithmetic operators for int2 with int8
+       (Tom)
+      
+
+      
+       This eliminates the need for explicit casting in some situations.
+      
+     
+
+     
+      
+       Allow UUID input to accept an optional hyphen after
+       every fourth digit (Robert Haas)
+      
+     
+
+     
+      
+       Allow on/off as input for the boolean data type
+       (Itagaki Takahiro)
+      
+     
+
+     
+      
+       Allow spaces around NaN in the input string for
+       type numeric (Sam Mason)
+      
+     
+
+    
+
+    
+     Temporal Data Types
+     
+
+      
+       
+        Reject year 0 BC and years 000 and
+        0000 (Tom)
+       
+
+       
+        Previously these were interpreted as 1 BC.
+        (Note: years 0 and 00 are still assumed to be
+        the year 2000.)
+       
+      
+
+      
+       
+        Include SGT (Singapore time) in the default list of
+        known time zone abbreviations (Tom)
+       
+      
+
+      
+       
+        Support infinity and -infinity as
+        values of type date (Tom)
+       
+      
+
+      
+       
+        Make parsing of interval literals more standard-compliant (Tom)
+       
+
+       
+        For example, INTERVAL '1' YEAR now does what it's
+        supposed to.
+       
+      
+
+      
+       
+        Allow interval fractional-seconds precision to be specified
+        after the second keyword, for SQL standard
+        compliance (Tom)
+       
+
+       
+        Formerly the precision had to be specified after the keyword
+        interval.  (For backwards compatibility, this syntax is still
+        supported, though deprecated.)  Data type definitions will now be
+        output using the standard format.
+       
+      
+
+      
+       
+        Support the IS0 8601 interval syntax (Ron
+        Mayer, Kevin Grittner)
+       
+
+       
+        For example, INTERVAL 'P1Y2M3DT4H5M6.7S' is now
+        supported.
+       
+      
+
+      
+       
+        Add IntervalStyle parameter
+        which controls how interval values are output (Ron Mayer)
+       
+
+       
+        Valid values are:  postgres, postgres_verbose,
+        sql_standard, iso_8601.  This setting also
+        controls the handling of negative interval input when only
+        some fields have positive/negative designations.
+       
+      
+
+      
+       
+        Improve consistency of handling of fractional seconds in
+        timestamp and interval output (Ron Mayer)
+       
+      
+
+     
+
+    
+
+    
+     Arrays
+     
+
+      
+       
+        Improve the handling of casts applied to ARRAY[]
+        constructs, such as ARRAY[...]::integer[]
+        (Brendan Jurd)
+       
+
+       
+        Formerly PostgreSQL attempted to determine a data type
+        for the ARRAY[] construct without reference to the ensuing
+        cast.  This could fail unnecessarily in many cases, in particular when
+        the ARRAY[] construct was empty or contained only
+        ambiguous entries such as NULL.  Now the cast is consulted
+        to determine the type that the array elements must be.
+       
+      
+
+      
+       
+        Make SQL-syntax ARRAY dimensions optional
+        to match the SQL standard (Peter)
+       
+      
+
+      
+       
+        Add array_ndims() to return the number
+        of dimensions of an array (Robert Haas)
+       
+      
+
+      
+       
+        Add array_length() to return the length
+        of an array for a specified dimension (Jim Nasby, Robert
+        Haas, Peter Eisentraut)
+       
+      
+
+      
+       
+        Add aggregate function array_agg(), which
+        returns all aggregated values as a single array (Robert Haas,
+        Jeff Davis, Peter)
+       
+      
+
+      
+       
+        Add unnest(), which converts an array to
+        individual row values (Tom)
+       
+
+       
+        This is the opposite of array_agg().
+       
+      
+
+      
+       
+        Add array_fill() to create arrays initialized with
+        a value (Pavel Stehule)
+       
+      
+
+      
+       
+        Add generate_subscripts() to simplify generating
+        the range of an array's subscripts (Pavel Stehule)
+       
+      
+
+     
+
+    
+
+    
+     Wide-Value Storage (<acronym>TOAST</>)
+     
+
+      
+       
+        Consider TOAST compression on values as short as
+        32 bytes (previously 256 bytes) (Greg Stark)
+       
+      
+
+      
+       
+        Require 25% minimum space savings before using TOAST
+        compression (previously 20% for small values and any-savings-at-all
+        for large values) (Greg)
+       
+      
+
+      
+       
+        Improve TOAST heuristics for rows that have a mix of large
+        and small toastable fields, so that we prefer to push large values out
+        of line and don't compress small values unnecessarily (Greg, Tom)
+       
+      
+
+     
+
+    
+
+   
+
+   
+    Functions
+    
+
+     
+      
+       Document that setseed() allows values from
+       -1 to 1 (not just 0 to
+       1), and enforce the valid range (Kris Jurka)
+      
+     
+
+     
+      
+       Add server-side function lo_import(filename, oid)
+       (Tatsuo)
+      
+     
+
+     
+      
+       Add quote_nullable(), which behaves like
+       quote_literal() but returns the string NULL for
+       a null argument (Brendan Jurd)
+      
+     
+
+     
+      
+       Improve full text search headline() function to
+       allow extracting several fragments of text (Sushant Sinha)
+      
+     
+
+     
+      
+       Add suppress_redundant_updates_trigger() trigger
+       function to avoid overhead for non-data-changing updates (Andrew)
+      
+     
+
+     
+      
+       Add div(numeric, numeric) to perform numeric
+       division without rounding (Tom)
+      
+     
+
+     
+      
+       Add timestamp and timestamptz versions of
+       generate_series() (Hitoshi Harada)
+      
+     
+
+    
+
+    
+     Object Information Functions
+     
+
+      
+       
+        Implement current_query() for use by functions
+        that need to know the currently running query (Tomas Doran)
+       
+      
+
+      
+       
+        Add pg_get_keywords() to return a list of the
+        parser keywords (Dave Page)
+       
+      
+
+      
+       
+        Add pg_get_functiondef() to see a function's
+        definition (Abhijit Menon-Sen)
+       
+      
+
+      
+       
+        Modify pg_relation_size() to use regclass
+        (Heikki)
+       
+
+       
+        pg_relation_size(data_type_name) no longer works.
+       
+      
+
+      
+       
+        Add boot_val and reset_val columns to
+        pg_settings output (Greg Smith)
+       
+      
+
+      
+       
+        Add source file name and line number columns to
+        pg_settings output for variables set in a configuration
+        file (Magnus, Alvaro)
+       
+
+       
+        For security reasons, these columns are only visible to superusers.
+       
+      
+
+      
+       
+        Add support for CURRENT_CATALOG,
+        CURRENT_SCHEMA, SET CATALOG, SET
+        SCHEMA (Peter)
+       
+
+       
+        These provide SQL-standard syntax for existing features.
+       
+      
+
+      
+       
+        Add pg_typeof() which returns the data type
+        of any value (Brendan Jurd)
+       
+      
+
+      
+       
+        Make version() return information about whether
+        the server is a 32- or 64-bit binary (Bruce)
+       
+      
+
+      
+       
+        Fix the behavior of information schema columns
+        is_insertable_into and is_updatable to
+        be consistent (Peter)
+       
+      
+
+      
+       
+        Convert remaining builtin set-returning functions to use
+        OUT parameters (Jaime Casanova)
+       
+
+       
+        This makes it possible to call these functions without specifying
+        a column list:  pg_show_all_settings(),
+        pg_lock_status(), pg_prepared_xact(),
+        pg_prepared_statement(), pg_cursor()
+       
+      
+
+      
+       
+        Make pg_*_is_visible() and
+        has_*_privilege() functions return NULL
+        for invalid OIDs, rather than reporting an error (Tom)
+       
+      
+
+      
+       
+        Extend has_*_privilege() functions to allow inquiring
+        about the OR of multiple privileges in one call (Stephen
+        Frost, Tom)
+       
+      
+
+      
+       
+        Add has_column_privilege() and
+        has_any_column_privilege() functions (Stephen
+        Frost, Tom)
+       
+      
+
+     
+
+    
+
+    
+     Function Creation
+     
+
+      
+       
+        Support variadic functions (functions with a variable number
+        of arguments) (Pavel Stehule)
+       
+
+       
+        Only trailing arguments can be optional, and they all must be
+        of the same data type.
+       
+      
+
+      
+       
+        Support default values for function arguments (Pavel Stehule)
+       
+      
+
+      
+       
+        Add CREATE FUNCTION ... RETURNS TABLE clause (Pavel
+        Stehule)
+       
+      
+
+      
+       
+        Allow SQL-language functions to return the output
+        of an INSERT/UPDATE/DELETE
+        RETURNING clause (Tom)
+       
+      
+
+     
+
+    
+
+    
+     PL/PgSQL Server-Side Language
+     
+
+      
+       
+        Support EXECUTE USING for easier insertion of data
+        values into a dynamic query string (Pavel Stehule)
+       
+      
+
+      
+       
+        Allow looping over the results of a cursor using a FOR
+        loop (Pavel Stehule)
+       
+      
+
+      
+       
+        Support RETURN QUERY EXECUTE (Pavel
+        Stehule)
+       
+      
+
+      
+       
+        Improve the RAISE command (Pavel Stehule)
+
+        
+         
+          
+           Support DETAIL and HINT fields
+          
+         
+         
+          
+           Support specification of the SQLSTATE error code
+          
+         
+         
+          
+           Support an exception name parameter
+          
+         
+         
+          
+           Allow RAISE without parameters in an exception
+           block to re-throw the current error
+          
+         
+        
+       
+      
+
+      
+       
+        Allow specification of SQLSTATE codes
+        in EXCEPTION lists (Pavel Stehule)
+       
+
+       
+        This is useful for handling custom SQLSTATE codes.
+       
+      
+
+      
+       
+        Support the CASE statement (Pavel Stehule)
+       
+      
+
+      
+       
+        Make RETURN QUERY set the special FOUND and
+        GET DIAGNOSTICS ROW_COUNT variables
+        (Pavel Stehule)
+       
+      
+
+      
+       
+        Make FETCH and MOVE set the
+        GET DIAGNOSTICS ROW_COUNT variable
+        (Andrew Gierth)
+       
+      
+
+      
+       
+        Avoid memory leakage when the same function is called at varying
+        exception-block nesting depths (Tom)
+       
+      
+
+     
+
+    
+
+   
+
+   
+    Client Applications
+
+    
+
+     
+      
+       Fix pg_ctl restart to preserve command-line arguments
+       (Bruce)
+      
+     
+
+     
+      
+       Add -w/--no-password option that
+       prevents password prompting in all utilities that have a
+       -W/--password option (Peter)
+      
+     
+
+     
+      
+       Remove 
+       createuser, dropdb,
+       dropuser (Peter)
+      
+
+      
+       These options have had no effect since PostgreSQL
+       8.3.
+      
+     
+
+    
+
+    
+     <application>psql</>
+     
+
+      
+       
+        Remove verbose startup banner; now just suggest help
+        (Joshua Drake)
+       
+      
+
+      
+       
+        Make help show common backslash commands (Greg
+        Sabino Mullane)
+       
+      
+
+      
+       
+        Add \pset format wrapped mode to wrap output to the
+        screen width, or file/pipe output too if \pset columns
+        is set (Bryce Nesbitt)
+       
+      
+
+      
+       
+        Allow all supported spellings of boolean values in \pset,
+        rather than just on and off (Bruce)
+       
+
+       
+        Formerly, any string other than off was silently taken
+        to mean true.  psql will now complain
+        about unrecognized spellings (but still take them as true).
+       
+      
+
+      
+       
+        Use the pager for wide output (Bruce)
+       
+      
+
+      
+       
+        Require a space between a one-letter backslash command and its first
+        argument (Bernd Helmle)
+       
+
+       
+        This removes a historical source of ambiguity.
+       
+      
+
+      
+       
+        Improve tab completion support for schema-qualified and
+        quoted identifiers (Greg Sabino Mullane)
+       
+      
+
+      
+       
+        Add optional on/off argument for
+        \timing (David Fetter)
+       
+      
+
+      
+       
+        Display access control rights on multiple lines (Brendan
+        Jurd, Andreas Scherbaum)
+       
+      
+
+      
+       
+        Make \l show database access privileges (Andrew Gilligan)
+       
+      
+
+      
+       
+        Make \l+ show database sizes, if permissions
+        allow (Andrew Gilligan)
+       
+      
+
+      
+       
+        Add the \ef command to edit function definitions
+        (Abhijit Menon-Sen)
+       
+      
+
+     
+
+    
+
+    
+     <application>psql</> \d* commands
+
+     
+
+      
+       
+        Make \d* commands that do not have a pattern argument
+        show system objects only if the S modifier is specified
+        (Greg Sabino Mullane, Bruce)
+       
+
+       
+        The former behavior was inconsistent across different variants
+        of \d, and in most cases it provided no easy way to see
+        just user objects.
+       
+      
+
+      
+       
+        Improve \d* commands to work with older
+        PostgreSQL server versions (back to 7.4),
+        not only the current server version
+        (Guillaume Lelarge)
+       
+      
+
+      
+       
+        Make \d show foreign-key constraints that reference
+        the selected table (Kenneth D'Souza)
+       
+      
+
+      
+       
+        Make \d on a sequence show its column values
+        (Euler Taveira de Oliveira)
+       
+      
+
+      
+       
+        Add column storage type and other relation options to the
+        \d+ display (Gregory Stark, Euler Taveira de
+        Oliveira)
+       
+      
+
+      
+       
+        Show relation size in \dt+ output (Dickson S.
+        Guedes)
+       
+      
+
+      
+       
+        Show the possible values of enum types in \dT+
+        (David Fetter)
+       
+      
+
+      
+       
+        Allow \dC to accept a wildcard pattern, which matches
+        either datatype involved in the cast (Tom)
+       
+      
+
+      
+       
+        Make \df not hide functions that take or return
+        type cstring (Tom)
+       
+
+       
+        Previously, such functions were hidden because most of them are
+        datatype I/O functions, which were deemed uninteresting.  The new
+        policy about hiding system functions by default makes this wart
+        unnecessary.
+       
+      
+
+     
+
+    
+
+    
+     <application>pg_dump</>
+     
+
+      
+       
+        Add a --no-tablespaces option to
+        pg_dump/pg_dumpall/pg_restore
+        so that dumps can be restored to clusters that have non-matching
+        tablespace layouts (Gavin Roy)
+       
+      
+
+      
+       
+        Remove 
+        pg_dump and pg_dumpall (Tom)
+       
+
+       
+        These options were too frequently confused with the option to
+        select a database name in other PostgreSQL
+        client applications.  The functionality is still available,
+        but you must now spell out the long option name
+        
+       
+      
+
+      
+       
+        Remove 
+        pg_dump and pg_dumpall (Tom)
+       
+
+       
+        Use of this option does not throw an error, but it has no
+        effect.  This option was removed because the version checks
+        are necessary for safety.
+       
+      
+
+      
+       
+        Disable statement_timeout during dump and restore
+        (Joshua Drake)
+       
+      
+
+      
+       
+        Add pg_dump/pg_dumpall option
+        
+       
+
+       
+        This allows dumps to fail if unable to acquire a shared lock
+        within the specified amount of time.
+       
+      
+
+      
+       
+        Reorder pg_dump --data-only output
+        to dump tables referenced by foreign keys before
+        the referencing tables (Tom)
+       
+
+       
+        This allows data loads when foreign keys are already present.
+        If circular references make a safe ordering impossible, a
+        NOTICE is issued.
+       
+      
+
+      
+       
+        Allow pg_dump, pg_dumpall, and
+        pg_restore to use a specified role (Benedek
+        László)
+       
+      
+
+      
+       
+        Allow pg_restore to use multiple concurrent
+        connections to do the restore (Andrew)
+       
+
+       
+        The number of concurrent connections is controlled by the option
+        --jobs.  This is supported only for custom-format archives.
+       
+      
+
+     
+
+    
+
+   
+
+   
+    Programming Tools
+
+    
+     <application>libpq</>
+     
+
+      
+       
+        Allow the OID to be specified when importing a large
+        object, via new function lo_import_with_oid() (Tatsuo)
+       
+      
+
+      
+       
+        Add events support (Andrew Chernow, Merlin Moncure)
+       
+
+       
+        This adds the ability to register callbacks to manage private
+        data associated with PGconn and PGresult
+        objects.
+       
+      
+
+      
+       
+        Improve error handling to allow the return of multiple
+        error messages as multi-line error reports (Magnus)
+       
+      
+
+      
+       
+        Make PQexecParams() and related functions return
+        PGRES_EMPTY_QUERY for an empty query (Tom)
+       
+
+       
+        They previously returned PGRES_COMMAND_OK.
+       
+      
+
+      
+       
+        Document how to avoid the overhead of WSACleanup()
+        on Windows (Andrew Chernow)
+       
+      
+
+     
+
+    
+
+    
+     <application>libpq</> <acronym>SSL</> (Secure Sockets Layer)</div> <div class="diff add">+      support
+     
+
+      
+       
+        Fix certificate validation for SSL connections
+        (Magnus)
+       
+
+       
+        libpq now supports verifying both the certificate
+        and the name of the server when making SSL
+        connections. If a root certificate is not available to use for
+        verification, SSL connections will fail. The
+        sslmode parameter is used to enable the certificate
+        verification.
+       
+
+       
+        The default is still not to do any verification.
+       
+      
+
+      
+       
+        Allow the file locations for client certificates to be specified
+        (Mark Woodward, Alvaro, Magnus)
+       
+      
+
+      
+       
+        Add a PQinitOpenSSL function to allow greater control
+        over OpenSSL/libcrypto initialization (Andrew Chernow)
+       
+      
+
+      
+       
+        Make libpq unregister its OpenSSL
+        callbacks when no database connections remain open
+        (Bruce, Magnus, Russell Smith)
+       
+
+       
+        This is required for applications that unload the libpq library,
+        otherwise invalid OpenSSL callbacks will remain.
+       
+      
+
+     
+
+    
+
+    
+     <application>ecpg</>
+     
+
+      
+       
+        Add localization support for messages (Euler Taveira de
+        Oliveira)
+       
+      
+
+      
+       
+        ecpg parser is now automatically generated from the server
+        parser (Michael)
+       
+
+       
+        Previously the ecpg parser was hand-maintained.
+       
+      
+
+     
+
+    
+
+    
+     Server Programming Interface (<acronym>SPI</>)
+     
+
+      
+       
+        Add support for single-use plans with out-of-line
+        parameters (Tom)
+       
+      
+
+      
+       
+        Add new SPI_OK_REWRITTEN return code for
+        SPI_execute() (Heikki)
+       
+
+       
+        This is used when a command is rewritten to another type of
+        command.
+       
+      
+
+      
+       
+        Remove unnecessary inclusions from executor/spi.h (Tom)
+       
+
+       
+        SPI-using modules might need to add some #include
+        lines if they were depending on spi.h to include
+        things for them.
+       
+      
+
+     
+
+    
+
+   
+
+   
+    Build Options
+    
+
+     
+      
+       Update build system to use Autoconf 2.61 (Peter)
+      
+     
+
+     
+      
+       Require GNU bison for source code builds (Peter)
+      
+
+      
+       This has effectively been required for several years, but now there
+       is no infrastructure claiming to support other parser tools.
+      
+     
+
+     
+      
+       Add pg_config --htmldir option
+       (Peter)
+      
+     
+
+     
+      
+       Pass float4 by value inside the server (Zoltan
+       Boszormenyi)
+      
+
+      
+       Add configure option
+       --disable-float4-byval to use the old behavior.
+       External C functions that use old-style (version 0) call convention
+       and pass or return float4 values will be broken by this
+       change, so you may need the configure option if you
+       have such functions and don't want to update them.
+      
+     
+
+     
+      
+       Pass float8, int8, and related datatypes
+       by value inside the server on 64-bit platforms (Zoltan Boszormenyi)
+      
+
+      
+       Add configure option
+       --disable-float8-byval to use the old behavior.
+       As above, this change might break old-style external C functions.
+      
+     
+
+     
+      
+       Add configure options --with-segsize,
+       --with-blocksize, --with-wal-blocksize,
+       --with-wal-segsize (Zdenek Kotala, Tom)
+      
+
+      
+       This simplifies build-time control over several constants that
+       previously could only be changed by editing
+       pg_config_manual.h.
+      
+     
+
+     
+      
+       Allow threaded builds on Solaris 2.5 (Bruce)
+      
+     
+
+     
+      
+       Use the system's getopt_long() on Solaris
+       (Zdenek Kotala, Tom)
+      
+
+      
+       This makes option processing more consistent with what Solaris users
+       expect.
+      
+     
+
+     
+      
+       Add support for the Sun Studio compiler on
+       Linux (Julius Stroffek)
+      
+     
+
+     
+      
+       Append the major version number to the backend gettext
+       domain, and the soname major version number to
+       libraries' gettext domain (Peter)
+      
+
+      
+       This simplifies parallel installations of multiple versions.
+      
+     
+
+     
+      
+       Add support for code coverage testing with gcov
+       (Michelle Caisse)
+      
+     
+
+     
+      
+       Allow out-of-tree builds on Mingw and
+       Cygwin (Richard Evans)
+      
+     
+
+     
+      
+       Fix the use of Mingw as a cross-compiling source
+       platform (Peter)
+      
+     
+
+    
+
+   
+
+   
+    Source Code
+    
+
+     
+      
+       Support 64-bit time zone data files (Heikki)
+      
+
+      
+       This adds support for daylight saving time (DST)
+       calculations beyond the year 2038.
+      
+     
+
+     
+      
+       Deprecate use of platform's time_t data type (Tom)
+      
+
+      
+       Some platforms have migrated to 64-bit time_t, some have
+       not, and Windows can't make up its mind what it's doing.  Define
+       pg_time_t to have the same meaning as time_t,
+       but always be 64 bits (unless the platform has no 64-bit integer type),
+       and use that type in all module APIs and on-disk data formats.
+      
+     
+
+     
+      
+       Fix bug in handling of the time zone database when cross-compiling
+       (Richard Evans)
+      
+     
+
+     
+      
+       Link backend object files in one step, rather than in stages
+       (Peter)
+      
+     
+
+     
+      
+       Improve gettext support to allow better translation
+       of plurals (Peter)
+      
+     
+
+     
+      
+       Add message translation support to the PL languages (Alvaro, Peter)
+      
+     
+
+     
+      
+       Add more DTrace probes (Robert Lor)
+      
+     
+
+     
+      
+       Enable DTrace support on Mac OS X
+       Leopard and other non-Solaris platforms (Robert Lor)
+      
+     
+
+     
+      
+       Simplify and standardize conversions between C strings and
+       text datums, by providing common functions for the purpose
+       (Brendan Jurd, Tom)
+      
+     
+
+     
+      
+       Clean up the include/catalog/ header files so that
+       frontend programs can include them without including
+       postgres.h
+       (Zdenek Kotala)
+      
+     
+
+     
+      
+       Make name char-aligned, and suppress zero-padding of
+       name entries in indexes (Tom)
+      
+     
+
+     
+      
+       Add a hook to let plug-ins monitor the executor (Itagaki
+       Takahiro)
+      
+     
+
+     
+      
+       Add a hook to allow the planner's statistics lookup behavior to
+       be overridden (Simon Riggs)
+      
+     
+
+     
+      
+       Add shmem_startup_hook() for custom shared memory
+       requirements (Tom)
+      
+     
+
+     
+      
+       Replace the index access method amgetmulti entry point
+       with amgetbitmap, and extend the API for
+       amgettuple to support run-time determination of
+       operator lossiness (Heikki, Tom, Teodor)
+      
+
+      
+       The API for GIN and GiST opclass consistent functions
+       has been extended as well.
+      
+     
+
+     
+      
+       Add support for partial-match searches in GIN indexes
+       (Teodor Sigaev, Oleg Bartunov)
+      
+     
+
+     
+      
+       Replace pg_class column reltriggers
+       with boolean relhastriggers (Simon)
+      
+
+      
+       Also remove unused pg_class columns
+       relukeys, relfkeys, and
+       relrefs.
+      
+     
+
+     
+      
+       Add a relistemp column to pg_class
+       to ease identification of temporary tables (Tom)
+      
+     
+
+     
+      
+       Move platform FAQs into the main documentation
+       (Peter)
+      
+     
+
+     
+      
+       Prevent parser input files from being built with any conflicts
+       (Peter)
+      
+     
+
+     
+      
+       Add support for the KOI8U (Ukrainian) encoding
+       (Peter)
+      
+     
+
+     
+      
+       Add Japanese message translations (Japan PostgreSQL Users Group)
+      
+
+      
+       This used to be maintained as a separate project.
+      
+     
+
+     
+      
+       Fix problem when setting LC_MESSAGES on
+       MSVC-built systems (Hiroshi Inoue, Hiroshi
+       Saito, Magnus)
+      
+     
+
+    
+
+   
+
+   
+    Contrib
+
+    
+
+     
+      
+       Add contrib/auto_explain to automatically run
+       EXPLAIN on queries exceeding a specified duration
+       (Itagaki Takahiro, Tom)
+      
+     
+
+     
+      
+       Add contrib/btree_gin to allow GIN indexes to
+       handle more datatypes (Oleg, Teodor)
+      
+     
+
+     
+      
+       Add contrib/citext to provide a case-insensitive,
+       multibyte-aware text data type (David Wheeler)
+      
+     
+
+     
+      
+       Add contrib/pg_stat_statements for server-wide
+       tracking of statement execution statistics (Itagaki Takahiro)
+      
+     
+
+     
+      
+       Add duration and query mode options to contrib/pgbench
+       (Itagaki Takahiro)
+      
+     
+
+     
+      
+       Fix contrib/pgstattuple to handle tables and
+       indexes with over 2 billion pages (Tatsuhito Kasahara)
+      
+     
+
+     
+      
+       In contrib/fuzzystrmatch, add a version of the
+       Levenshtein string-distance function that allows the user to
+       specify the costs of insertion, deletion, and substitution
+       (Volkan Yazici)
+      
+     
+
+     
+      
+       Make contrib/ltree support multibyte encodings
+       (laser)
+      
+     
+
+     
+      
+       Improve contrib/dblink's reporting of errors from
+       the remote server (Joe Conway)
+      
+     
+
+     
+      
+       Make sure contrib/dblink uses a password supplied
+       by the user, and not accidentally taken from the server's
+       .pgpass file (Joe Conway)
+      
+
+      
+       This is a minor security enhancement.
+      
+     
+
+     
+      
+       Add fsm_page_contents()
+       to contrib/pageinspect (Heikki)
+      
+     
+
+     
+      
+       Modify get_raw_page() to support free space map
+       (*_fsm) files.  Also update
+       contrib/pg_freespacemap.
+      
+     
+
+     
+      
+       Add support for multibyte encodings to contrib/pg_trgm
+       (Teodor)
+      
+     
+
+     
+      
+       Rewrite contrib/intagg to use new
+       functions array_agg() and unnest()
+       (Tom)
+      
+     
+
+     
+      
+       Remove contrib/intarray's definitions of the
+       <@ and @> operators (Tom)
+      
+
+      
+       This avoids confusion with the equivalent built-in operators.
+       If needed, the contrib/intarray implementations
+       are still available under their historical names @
+       and ~.
+      
+     
+
+    
+
+   
+  
diff --git a/doc/src/sgml/release-old.sgml b/doc/src/sgml/release-old.sgml
new file mode 100644 (file)
index 0000000..54fa37d
--- /dev/null
@@ -0,0 +1,6657 @@
+
+
+
+  Release 7.3.21
+
+  
+  Release date
+  2008-01-07
+  
+
+  
+   This release contains a variety of fixes from 7.3.20,
+   including fixes for significant security issues.
+  
+
+  
+   This is expected to be the last PostgreSQL release
+   in the 7.3.X series.  Users are encouraged to update to a newer
+   release branch soon.
+  
+
+  
+   Migration to Version 7.3.21
+
+   
+    A dump/restore is not required for those running 7.3.X.  However,
+    if you are upgrading from a version earlier than 7.3.13, see the release
+    notes for 7.3.13.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Prevent functions in indexes from executing with the privileges of
+      the user running VACUUM, ANALYZE, etc (Tom)
+     
+
+     
+      Functions used in index expressions and partial-index
+      predicates are evaluated whenever a new table entry is made.  It has
+      long been understood that this poses a risk of trojan-horse code
+      execution if one modifies a table owned by an untrustworthy user.
+      (Note that triggers, defaults, check constraints, etc. pose the
+      same type of risk.)  But functions in indexes pose extra danger
+      because they will be executed by routine maintenance operations
+      such as VACUUM FULL, which are commonly performed
+      automatically under a superuser account.  For example, a nefarious user
+      can execute code with superuser privileges by setting up a
+      trojan-horse index definition and waiting for the next routine vacuum.
+      The fix arranges for standard maintenance operations
+      (including VACUUM, ANALYZE, REINDEX,
+      and CLUSTER) to execute as the table owner rather than
+      the calling user, using the same privilege-switching mechanism already
+      used for SECURITY DEFINER functions.  To prevent bypassing
+      this security measure, execution of SET SESSION
+      AUTHORIZATION and SET ROLE is now forbidden within a
+      SECURITY DEFINER context.  (CVE-2007-6600)
+     
+    
+
+    
+     
+      Require non-superusers who use /contrib/dblink to use only
+      password authentication, as a security measure (Joe)
+     
+
+     
+      The fix that appeared for this in 7.3.20 was incomplete, as it plugged
+      the hole for only some dblink functions.  (CVE-2007-6601,
+      CVE-2007-3278)
+     
+    
+
+    
+     
+      Fix potential crash in translate() when using a multibyte
+      database encoding (Tom)
+     
+    
+
+    
+     
+      Make contrib/tablefunc's crosstab() handle
+      NULL rowid as a category in its own right, rather than crashing (Joe)
+     
+    
+
+    
+     
+      Require a specific version of Autoconf to be used
+      when re-generating the configure script (Peter)
+     
+
+     
+      This affects developers and packagers only.  The change was made
+      to prevent accidental use of untested combinations of
+      Autoconf and PostgreSQL versions.
+      You can remove the version check if you really want to use a
+      different Autoconf version, but it's
+      your responsibility whether the result works or not.
+     
+    
+
+   
+
+  
+
+  Release 7.3.20
+
+  
+  Release date
+  2007-09-17
+  
+
+  
+   This release contains fixes from 7.3.19.
+  
+
+  
+   Migration to Version 7.3.20
+
+   
+    A dump/restore is not required for those running 7.3.X.  However,
+    if you are upgrading from a version earlier than 7.3.13, see the release
+    notes for 7.3.13.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      Prevent index corruption when a transaction inserts rows and
+      then aborts close to the end of a concurrent VACUUM
+      on the same table (Tom)
+     
+    
+
+    
+     
+      Make CREATE DOMAIN ... DEFAULT NULL work properly (Tom)
+     
+    
+
+    
+     
+      Fix crash when log_min_error_statement logging runs out
+      of memory (Tom)
+     
+    
+
+    
+     
+      Require non-superusers who use /contrib/dblink to use only
+      password authentication, as a security measure (Joe)
+     
+    
+
+   
+
+  
+
+  Release 7.3.19
+
+  
+  Release date
+  2007-04-23
+  
+
+  
+   This release contains fixes from 7.3.18,
+   including a security fix.
+  
+
+  
+   Migration to Version 7.3.19
+
+   
+    A dump/restore is not required for those running 7.3.X.  However,
+    if you are upgrading from a version earlier than 7.3.13, see the release
+    notes for 7.3.13.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+    
+     Support explicit placement of the temporary-table schema within
+     search_path, and disable searching it for functions
+     and operators (Tom)
+    
+    
+     This is needed to allow a security-definer function to set a
+     truly secure value of search_path.  Without it,
+     an unprivileged SQL user can use temporary objects to execute code
+     with the privileges of the security-definer function (CVE-2007-2138).
+     See CREATE FUNCTION for more information.
+    
+    
+
+    
+    
+     Fix potential-data-corruption bug in how VACUUM FULL handles
+     UPDATE chains (Tom, Pavan Deolasee)
+    
+    
+
+   
+
+  
+
+  Release 7.3.18
+
+  
+  Release date
+  2007-02-05
+  
+
+  
+   This release contains a variety of fixes from 7.3.17, including
+   a security fix.
+  
+
+  
+   Migration to Version 7.3.18
+
+   
+    A dump/restore is not required for those running 7.3.X.  However,
+    if you are upgrading from a version earlier than 7.3.13, see the release
+    notes for 7.3.13.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+    
+     Remove security vulnerability that allowed connected users
+     to read backend memory (Tom)
+    
+    
+     The vulnerability involves changing the
+     data type of a table column used in a SQL function (CVE-2007-0555).
+     This error can easily be exploited to cause a backend crash, and in
+     principle might be used to read database content that the user
+     should not be able to access.
+    
+    
+
+    
+    
+     Fix rare bug wherein btree index page splits could fail
+     due to choosing an infeasible split point (Heikki Linnakangas)
+    
+    
+
+    
+    
+     Tighten security of multi-byte character processing for UTF8 sequences
+     over three bytes long (Tom)
+    
+    
+
+   
+
+  
+
+  Release 7.3.17
+
+  
+  Release date
+  2007-01-08
+  
+
+  
+   This release contains a variety of fixes from 7.3.16.
+  
+
+  
+   Migration to Version 7.3.17
+
+   
+    A dump/restore is not required for those running 7.3.X.  However,
+    if you are upgrading from a version earlier than 7.3.13, see the release
+    notes for 7.3.13.
+   
+
+  
+
+  
+   Changes
+
+   
+
+    
+     
+      to_number() and to_char(numeric)
+      are now STABLE, not IMMUTABLE, for
+      new initdb installs (Tom)
+     
+
+     
+      This is because lc_numeric can potentially
+      change the output of these functions.
+     
+    
+
+    
+     
+      Improve index usage of regular expressions that use parentheses (Tom)
+     
+
+     
+      This improves psql \d performance also.
+     
+    
+
+   
+
+  
+
+  Release 7.3.16
+
+  
+  Release date
+  2006-10-16
+  
+
+  
+   This release contains a variety of fixes from 7.3.15.
+  
+
+  
+   Migration to Version 7.3.16
+
+   
+    A dump/restore is not required for those running 7.3.X.  However,
+    if you are upgrading from a version earlier than 7.3.13, see the release
+    notes for 7.3.13.
+   
+
+  
+
+  
+   Changes
+
+
+Fix corner cases in pattern matching for
psql's \d commands
+Fix index-corrupting bugs in /contrib/ltree
+ (Teodor)
+Back-port 7.4 spinlock code to improve performance and support
+64-bit architectures better 
+Fix SSL-related memory leak in libpq 
+Fix backslash escaping in /contrib/dbmirror
+Adjust regression tests for recent changes in US DST laws
+
+
+  
+
+  Release 7.3.15
+
+  
+  Release date
+  2006-05-23
+  
+
+  
+   This release contains a variety of fixes from 7.3.14,
+   including patches for extremely serious security issues.
+  
+
+  
+   Migration to Version 7.3.15
+
+   
+    A dump/restore is not required for those running 7.3.X.  However,
+    if you are upgrading from a version earlier than 7.3.13, see the release
+    notes for 7.3.13.
+   
+
+   
+    Full security against the SQL-injection attacks described in
+    CVE-2006-2313 and CVE-2006-2314 might require changes in application
+    code.  If you have applications that embed untrustworthy strings
+    into SQL commands, you should examine them as soon as possible to
+    ensure that they are using recommended escaping techniques.  In
+    most cases, applications should be using subroutines provided by
+    libraries or drivers (such as libpq's
+    PQescapeStringConn()) to perform string escaping,
+    rather than relying on ad hoc code to do it.
+   
+  
+
+  
+   Changes
+
+
+Change the server to reject invalidly-encoded multibyte
+characters in all cases (Tatsuo, Tom)
+While PostgreSQL has been moving in this direction for
+some time, the checks are now applied uniformly to all encodings and all
+textual input, and are now always errors not merely warnings.  This change
+defends against SQL-injection attacks of the type described in CVE-2006-2313.
+
+
+Reject unsafe uses of \' in string literals
+As a server-side defense against SQL-injection attacks of the type
+described in CVE-2006-2314, the server now only accepts '' and not
+\' as a representation of ASCII single quote in SQL string
+literals.  By default, \' is rejected only when
+client_encoding is set to a client-only encoding (SJIS, BIG5, GBK,
+GB18030, or UHC), which is the scenario in which SQL injection is possible.
+A new configuration parameter backslash_quote is available to
+adjust this behavior when needed.  Note that full security against
+CVE-2006-2314 might require client-side changes; the purpose of
+backslash_quote is in part to make it obvious that insecure
+clients are insecure.
+
+
+Modify libpq's string-escaping routines to be
+aware of encoding considerations
+This fixes libpq-using applications for the security
+issues described in CVE-2006-2313 and CVE-2006-2314.
+Applications that use multiple PostgreSQL connections
+concurrently should migrate to PQescapeStringConn() and
+PQescapeByteaConn() to ensure that escaping is done correctly
+for the settings in use in each database connection.  Applications that
+do string escaping by hand should be modified to rely on library
+routines instead.
+
+
+Fix some incorrect encoding conversion functions
+win1251_to_iso, alt_to_iso,
+euc_tw_to_big5, euc_tw_to_mic,
+mic_to_euc_tw were all broken to varying
+extents.
+
+
+Clean up stray remaining uses of \' in strings
+(Bruce, Jan)
+
+Fix server to use custom DH SSL parameters correctly (Michael
+Fuhr)
+
+Fix various minor memory leaks
+
+
+  
+
+  Release 7.3.14
+
+  
+  Release date
+  2006-02-14
+  
+
+  
+   This release contains a variety of fixes from 7.3.13.
+  
+
+  
+   Migration to Version 7.3.14
+
+   
+    A dump/restore is not required for those running 7.3.X.  However,
+    if you are upgrading from a version earlier than 7.3.13, see the release
+    notes for 7.3.13.
+   
+  
+
+  
+   Changes
+
+
+
+Fix potential crash in SET
+SESSION AUTHORIZATION (CVE-2006-0553)
+An unprivileged user could crash the server process, resulting in
+momentary denial of service to other users, if the server has been compiled
+with Asserts enabled (which is not the default).
+Thanks to Akio Ishida for reporting this problem.
+
+
+Fix bug with row visibility logic in self-inserted
+rows (Tom)
+Under rare circumstances a row inserted by the current command
+could be seen as already valid, when it should not be.  Repairs bug
+created in 7.3.11 release.
+
+
+Fix race condition that could lead to file already
+exists errors during pg_clog file creation
+(Tom)
+
+Fix to allow restoring dumps that have cross-schema
+references to custom operators (Tom)
+
+Portability fix for testing presence of finite
+and isinf during configure (Tom)
+
+
+
+  
+
+  Release 7.3.13
+
+  
+  Release date
+  2006-01-09
+  
+
+  
+   This release contains a variety of fixes from 7.3.12.
+  
+
+  
+   Migration to Version 7.3.13
+
+   
+    A dump/restore is not required for those running 7.3.X.  However,
+    if you are upgrading from a version earlier than 7.3.10, see the release
+    notes for 7.3.10.
+    Also, you might need to REINDEX indexes on textual
+    columns after updating, if you are affected by the locale or
+    plperl issues described below.
+   
+  
+
+  
+   Changes
+
+
+
+Fix character string comparison for locales that consider
+different character combinations as equal, such as Hungarian (Tom)
+This might require REINDEX to fix existing indexes on
+textual columns.
+
+Set locale environment variables during postmaster startup
+to ensure that plperl won't change the locale later
+This fixes a problem that occurred if the postmaster was
+started with environment variables specifying a different locale than what
+initdb had been told.  Under these conditions, any use of
+plperl was likely to lead to corrupt indexes.  You might need
+REINDEX to fix existing indexes on
+textual columns if this has happened to you.
+
+Fix longstanding bug in strpos() and regular expression
+handling in certain rarely used Asian multi-byte character sets (Tatsuo)
+
+
+Fix bug in /contrib/pgcrypto gen_salt,
+which caused it not to use all available salt space for MD5 and
+XDES algorithms (Marko Kreen, Solar Designer)
+Salts for Blowfish and standard DES are unaffected.
+
+Fix /contrib/dblink to throw an error,
+rather than crashing, when the number of columns specified is different from
+what's actually returned by the query (Joe)
+
+
+
+  
+
+  Release 7.3.12
+
+  
+  Release date
+  2005-12-12
+  
+
+  
+   This release contains a variety of fixes from 7.3.11.
+  
+
+  
+   Migration to Version 7.3.12
+
+   
+    A dump/restore is not required for those running 7.3.X.  However,
+    if you are upgrading from a version earlier than 7.3.10, see the release
+    notes for 7.3.10.
+   
+  
+
+  
+   Changes
+
+
+
+Fix race condition in transaction log management
+There was a narrow window in which an I/O operation could be initiated
+for the wrong page, leading to an Assert failure or data
+corruption.
+
+
+/contrib/ltree fixes (Teodor)
+
+Fix longstanding planning error for outer joins
+This bug sometimes caused a bogus error RIGHT JOIN is
+only supported with merge-joinable join conditions.
+
+Prevent core dump in pg_autovacuum when a
+table has been dropped
+
+
+
+  
+
+  Release 7.3.11
+
+  
+  Release date
+  2005-10-04
+  
+
+  
+   This release contains a variety of fixes from 7.3.10.
+  
+
+  
+   Migration to Version 7.3.11
+
+   
+    A dump/restore is not required for those running 7.3.X.  However,
+    if you are upgrading from a version earlier than 7.3.10, see the release
+    notes for 7.3.10.
+   
+  
+
+  
+   Changes
+
+
+Fix error that allowed VACUUM to remove
+ctid chains too soon, and add more checking in code that follows
+ctid links
+This fixes a long-standing problem that could cause crashes in very rare
+circumstances.
+Fix CHAR() to properly pad spaces to the specified
+length when using a multiple-byte character set (Yoshiyuki Asaba)
+In prior releases, the padding of CHAR() was incorrect
+because it only padded to the specified number of bytes without
+considering how many characters were stored.
+Fix missing rows in queries like UPDATE a=... WHERE
+a... with GiST index on column a
+Improve checking for partially-written WAL
+pages
+Improve robustness of signal handling when SSL is
+enabled
+Various memory leakage fixes
+Various portability improvements
+Fix PL/PgSQL to handle var := var correctly when
+the variable is of pass-by-reference type
+
+
+  
+
+  Release 7.3.10
+
+  
+  Release date
+  2005-05-09
+  
+
+  
+   This release contains a variety of fixes from 7.3.9, including several
+   security-related issues.
+  
+
+  
+   Migration to Version 7.3.10
+
+   
+    A dump/restore is not required for those running 7.3.X.  However,
+    it is one possible way of handling a significant security problem
+    that has been found in the initial contents of 7.3.X system
+    catalogs.  A dump/initdb/reload sequence using 7.3.10's initdb will
+    automatically correct this problem.
+   
+
+   
+    The security problem is that the built-in character set encoding
+    conversion functions can be invoked from SQL commands by unprivileged
+    users, but the functions were not designed for such use and are not
+    secure against malicious choices of arguments.  The fix involves changing
+    the declared parameter list of these functions so that they can no longer
+    be invoked from SQL commands.  (This does not affect their normal use
+    by the encoding conversion machinery.)
+    It is strongly recommended that all installations repair this error,
+    either by initdb or by following the manual repair procedure given
+    below.  The error at least allows unprivileged database users to crash
+    their server process, and might allow unprivileged users to gain the
+    privileges of a database superuser.
+   
+
+   
+    If you wish not to do an initdb, perform the following procedure instead.
+    As the database superuser, do:
+
+
+BEGIN;
+UPDATE pg_proc SET proargtypes[3] = 'internal'::regtype
+WHERE pronamespace = 11 AND pronargs = 5
+     AND proargtypes[2] = 'cstring'::regtype;
+-- The command should report having updated 90 rows;
+-- if not, rollback and investigate instead of committing!
+COMMIT;
+
+   
+
+   
+    The above procedure must be carried out in each database
+    of an installation, including template1, and ideally
+    including template0 as well.  If you do not fix the
+    template databases then any subsequently created databases will contain
+    the same error.  template1 can be fixed in the same way
+    as any other database, but fixing template0 requires
+    additional steps.  First, from any database issue:
+
+UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
+
+     Next connect to template0 and perform the above repair
+     procedure.  Finally, do:
+
+-- re-freeze template0:
+VACUUM FREEZE;
+-- and protect it against future alterations:
+UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';
+
+   
+  
+
+  
+   Changes
+
+
+Change encoding function signature to prevent
+misuse
+Repair ancient race condition that allowed a transaction to be
+seen as committed for some purposes (eg SELECT FOR UPDATE) slightly sooner
+than for other purposes
+This is an extremely serious bug since it could lead to apparent
+data inconsistencies being briefly visible to applications.
+Repair race condition between relation extension and
+VACUUM
+This could theoretically have caused loss of a page's worth of
+freshly-inserted data, although the scenario seems of very low probability.
+There are no known cases of it having caused more than an Assert failure.
+
+Fix comparisons of TIME WITH TIME ZONE values
+
+The comparison code was wrong in the case where the
+--enable-integer-datetimes configuration switch had been used.
+NOTE: if you have an index on a TIME WITH TIME ZONE column,
+it will need to be REINDEXed after installing this update, because
+the fix corrects the sort order of column values.
+
+Fix EXTRACT(EPOCH) for
+TIME WITH TIME ZONE values
+Fix mis-display of negative fractional seconds in
+INTERVAL values
+
+This error only occurred when the
+--enable-integer-datetimes configuration switch had been used.
+
+Additional buffer overrun checks in plpgsql
+(Neil)
+Fix pg_dump to dump trigger names containing %
+correctly (Neil)
+Prevent to_char(interval) from dumping core for
+month-related formats
+Fix contrib/pgcrypto for newer OpenSSL builds
+(Marko Kreen)
+Still more 64-bit fixes for
+contrib/intagg
+Prevent incorrect optimization of functions returning
+RECORD
+
+
+
+
+  Release 7.3.9
+
+  
+  Release date
+  2005-01-31
+  
+
+  
+   This release contains a variety of fixes from 7.3.8, including several
+   security-related issues.
+  
+
+  
+   Migration to Version 7.3.9
+
+   
+    A dump/restore is not required for those running 7.3.X.
+   
+  
+
+  
+   Changes
+
+
+Disallow LOAD to non-superusers
+
+On platforms that will automatically execute initialization functions of a
+shared library (this includes at least Windows and ELF-based Unixen),
+LOAD can be used to make the server execute arbitrary code.
+Thanks to NGS Software for reporting this.
+Check that creator of an aggregate function has the right to
+execute the specified transition functions
+
+This oversight made it possible to bypass denial of EXECUTE
+permission on a function.
+Fix security and 64-bit issues in
+contrib/intagg
+Add needed STRICT marking to some contrib functions (Kris
+Jurka)
+Avoid buffer overrun when plpgsql cursor declaration has too
+many parameters (Neil)
+Fix planning error for FULL and RIGHT outer joins
+
+The result of the join was mistakenly supposed to be sorted the same as the
+left input.  This could not only deliver mis-sorted output to the user, but
+in case of nested merge joins could give outright wrong answers.
+
+Fix plperl for quote marks in tuple fields
+Fix display of negative intervals in SQL and GERMAN
+datestyles
+
+
+
+
+  Release 7.3.8
+
+  
+  Release date
+  2004-10-22
+  
+
+  
+   This release contains a variety of fixes from 7.3.7.
+  
+
+
+  
+   Migration to Version 7.3.8
+
+   
+    A dump/restore is not required for those running 7.3.X.
+   
+  
+
+  
+   Changes
+
+
+Repair possible failure to update hint bits on disk
+
+Under rare circumstances this oversight could lead to
+could not access transaction status failures, which qualifies
+it as a potential-data-loss bug.
+
+Ensure that hashed outer join does not miss tuples
+
+Very large left joins using a hash join plan could fail to output unmatched
+left-side rows given just the right data distribution.
+
+Disallow running pg_ctl as root
+
+This is to guard against any possible security issues.
+
+Avoid using temp files in /tmp in make_oidjoins_check
+
+This has been reported as a security issue, though it's hardly worthy of
+concern since there is no reason for non-developers to use this script anyway.
+
+
+
+
+
+  Release 7.3.7
+
+  
+  Release date
+  2004-08-16
+  
+
+  
+   This release contains one critical fix over 7.3.6, and some minor items.
+  
+
+
+  
+   Migration to Version 7.3.7
+
+   
+    A dump/restore is not required for those running 7.3.X.
+   
+  
+
+  
+   Changes
+
+
+Prevent possible loss of committed transactions during crash
+
+Due to insufficient interlocking between transaction commit and checkpointing,
+it was possible for transactions committed just before the most recent
+checkpoint to be lost, in whole or in part, following a database crash and
+restart.  This is a serious bug that has existed
+since PostgreSQL 7.1.
+
+Remove asymmetrical word processing in tsearch (Teodor)
+Properly schema-qualify function names when pg_dump'ing a CAST
+
+
+
+
+  Release 7.3.6
+
+  
+  Release date
+  2004-03-02
+  
+
+  
+   This release contains a variety of fixes from 7.3.5.
+  
+
+
+  
+   Migration to Version 7.3.6
+
+   
+    A dump/restore is not required for those
+    running 7.3.*.
+   
+
+  
+
+  
+   Changes
+
+
+Revert erroneous changes in rule permissions checking
+A patch applied in 7.3.3 to fix a corner case in rule permissions checks
+turns out to have disabled rule-related permissions checks in many
+not-so-corner cases.  This would for example allow users to insert into views
+they weren't supposed to have permission to insert into.  We have therefore
+reverted the 7.3.3 patch.  The original bug will be fixed in 8.0.
+
+Repair incorrect order of operations in
+GetNewTransactionId()
+
+This bug could result in failure under out-of-disk-space conditions, including
+inability to restart even after disk space is freed.
+
+Ensure configure selects -fno-strict-aliasing even when
+an external value for CFLAGS is supplied
+
+On some platforms, building with -fstrict-aliasing causes bugs.
+
+Make pg_restore handle 64-bit off_t correctly
+
+This bug prevented proper restoration from archive files exceeding 4 GB.
+
+Make contrib/dblink not assume that local and remote type OIDs
+match (Joe)
+Quote connectby()'s start_with argument properly (Joe)
+Don't crash when a rowtype argument to a plpgsql function is
+NULL
+Avoid generating invalid character encoding sequences in
+corner cases when planning LIKE operations
+Ensure text_position() cannot scan past end of source string
+in multibyte cases (Korea PostgreSQL Users' Group)
+Fix index optimization and selectivity estimates for LIKE
+operations on bytea columns (Joe)
+
+
+
+
+  Release 7.3.5
+
+  
+  Release date
+  2003-12-03
+  
+
+  
+   This has a variety of fixes from 7.3.4.
+  
+
+
+  
+   Migration to Version 7.3.5
+
+   
+    A dump/restore is not required for those
+    running 7.3.*.
+   
+  
+
+  
+   Changes
+
+
+Force zero_damaged_pages to be on during recovery from WAL
+Prevent some obscure cases of variable not in subplan target lists
+Force stats processes to detach from shared memory, ensuring cleaner shutdown
+Make PQescapeBytea and byteaout consistent with each other (Joe)
+Added missing SPI_finish() calls to dblink's get_tuple_of_interest() (Joe)
+Fix for possible foreign key violation when rule rewrites INSERT (Jan)
+Support qualified type names in PL/Tcl's spi_prepare command (Jan)
+Make pg_dump handle a procedural language handler located in pg_catalog
+Make pg_dump handle cases where a custom opclass is in another schema
+Make pg_dump dump binary-compatible casts correctly (Jan)
+Fix insertion of expressions containing subqueries into rule bodies
+Fix incorrect argument processing in clusterdb script (Anand Ranganathan)
+Fix problems with dropped columns in plpython triggers
+Repair problems with to_char() reading past end of its input string (Karel)
+Fix GB18030 mapping errors (Tatsuo)
+Fix several problems with SSL error handling and asynchronous SSL I/O
+Remove ability to bind a list of values to a single parameter in JDBC
+(prevents possible SQL-injection attacks)
+Fix some errors in HAVE_INT64_TIMESTAMP code paths
+Fix corner case for btree search in parallel with first root page split
+
+
+
+
+  Release 7.3.4
+
+  
+  Release date
+  2003-07-24
+  
+
+  
+   This has a variety of fixes from 7.3.3.
+  
+
+
+  
+   Migration to Version 7.3.4
+
+   
+    A dump/restore is not required for those
+    running 7.3.*.
+   
+  
+
+  
+   Changes
+
+
+Repair breakage in timestamp-to-date conversion for dates before 2000
+Prevent rare possibility of server startup failure (Tom)
+Fix bugs in interval-to-time conversion (Tom)
+Add constraint names in a few places in pg_dump (Rod)
+Improve performance of functions with many parameters (Tom)
+Fix to_ascii() buffer overruns (Tom)
+Prevent restore of database comments from throwing an error (Tom)
+Work around buggy strxfrm() present in some Solaris releases (Tom)
+Properly escape jdbc setObject() strings to improve security (Barry)
+
+  
+
+
+
Release 7.3.3
+
+  Release date
+  2003-05-22
+
+  This release contains a variety of fixes for version 7.3.2.
+
+  Migration to Version 7.3.3
+
+  
+   A dump/restore is not required for those
+   running version 7.3.*.
+  
+
+  Changes
+
+
+Repair sometimes-incorrect computation of StartUpID after a crash
+Avoid slowness with lots of deferred triggers in one transaction (Stephan)
+Don't lock referenced row when UPDATE doesn't change foreign key's value (Jan)
+Use -fPIC not -fpic on Sparc (Tom Callaway)
+Repair lack of schema-awareness in contrib/reindexdb
+Fix contrib/intarray error for zero-element result array (Teodor)
+Ensure createuser script will exit on control-C (Oliver)
+Fix errors when the type of a dropped column has itself been dropped
+CHECKPOINT does not cause database panic on failure in noncritical steps
+Accept 60 in seconds fields of timestamp, time, interval input values
+Issue notice, not error, if TIMESTAMP,
+ TIME, or INTERVAL precision too large
+Fix abstime-to-time cast function (fix is
+      not applied unless you initdb)
+Fix pg_proc entry for
+     timestampt_izone (fix is not applied unless you
+       initdb)
+Make EXTRACT(EPOCH FROM timestamp without time zone) treat input as local time
+'now'::timestamptz gave wrong answer if timezone changed earlier in transaction
+HAVE_INT64_TIMESTAMP code for time with timezone overwrote its input
+Accept GLOBAL TEMP/TEMPORARY as a
+      synonym for TEMPORARY
+Avoid improper schema-privilege-check failure in foreign-key triggers
+Fix bugs in foreign-key triggers for SET DEFAULT action
+Fix incorrect time-qual check in row fetch for
+      UPDATE and DELETE triggers
+Foreign-key clauses were parsed but ignored in
+      ALTER TABLE ADD COLUMN
+Fix createlang script breakage for case where handler function already exists
+Fix misbehavior on zero-column tables in pg_dump, COPY, ANALYZE, other places
+Fix misbehavior of func_error() on type names containing '%'
+Fix misbehavior of replace() on strings containing '%'
+Regular-expression patterns containing certain multibyte characters failed
+Account correctly for NULLs in more cases in join size estimation
+Avoid conflict with system definition of isblank() function or macro
+Fix failure to convert large code point values in EUC_TW conversions (Tatsuo)
+Fix error recovery for SSL_read/SSL_write calls
+Don't do early constant-folding of type coercion expressions
+Validate page header fields immediately after reading in any page
+Repair incorrect check for ungrouped variables in unnamed joins
+Fix buffer overrun in to_ascii (Guido Notari)
+contrib/ltree fixes (Teodor)
+Fix core dump in deadlock detection on machines where char is unsigned
+Avoid running out of buffers in many-way indexscan (bug introduced in 7.3)
+Fix planner's selectivity estimation functions to handle domains properly
+Fix dbmirror memory-allocation bug (Steven Singer)
+Prevent infinite loop in ln(numeric) due to roundoff error
+GROUP BY got confused if there were multiple equal GROUP BY items
+Fix bad plan when inherited UPDATE/DELETE references another inherited table
+Prevent clustering on incomplete (partial or non-NULL-storing) indexes
+Service shutdown request at proper time if it arrives while still starting up
+Fix left-links in temporary indexes (could make backwards scans miss entries)
+Fix incorrect handling of client_encoding setting in postgresql.conf (Tatsuo)
+Fix failure to respond to pg_ctl stop -m fast after Async_NotifyHandler runs
+Fix SPI for case where rule contains multiple statements of the same type
+Fix problem with checking for wrong type of access privilege in rule query
+Fix problem with EXCEPT in CREATE RULE
+Prevent problem with dropping temp tables having serial columns
+Fix replace_vars_with_subplan_refs failure in complex views
+Fix regexp slowness in single-byte encodings (Tatsuo)
+Allow qualified type names in CREATE CAST
+      and  DROP CAST
+Accept SETOF type[], which formerly had to
+      be written SETOF _type
+Fix pg_dump core dump in some cases with procedural languages
+Force ISO datestyle in pg_dump output, for portability (Oliver)
+pg_dump failed to handle error return
+      from lo_read (Oleg Drokin)
+pg_dumpall failed with groups having no members (Nick Eskelinen)
+pg_dumpall failed to recognize --globals-only switch
+pg_restore failed to restore blobs if -X disable-triggers is specified
+Repair intrafunction memory leak in plpgsql
+pltcl's elog command dumped core if given wrong parameters (Ian Harding)
+plpython used wrong value of atttypmod (Brad McLean)
+Fix improper quoting of boolean values in Python interface (D'Arcy)
+Added addDataType() method to PGConnection interface for JDBC
+Fixed various problems with updateable ResultSets for JDBC (Shawn Green)
+Fixed various problems with DatabaseMetaData for JDBC (Kris Jurka, Peter Royal)
+Fixed problem with parsing table ACLs in JDBC
+Better error message for character set conversion problems in JDBC
+
+
+
+
+
Release 7.3.2
+
+  Release date
+  2003-02-04
+
+  This release contains a variety of fixes for version 7.3.1.
+
+
+  Migration to Version 7.3.2
+
+  
+   A dump/restore is not required for those
+   running version 7.3.*.
+  
+
+  Changes
+
+
+Restore creation of OID column in CREATE TABLE AS / SELECT INTO
+Fix pg_dump core dump when dumping views having comments
+Dump DEFERRABLE/INITIALLY DEFERRED constraints properly
+Fix UPDATE when child table's column numbering differs from parent
+Increase default value of max_fsm_relations
+Fix problem when fetching backwards in a cursor for a single-row query
+Make backward fetch work properly with cursor on SELECT DISTINCT query
+Fix problems with loading pg_dump files containing contrib/lo usage
+Fix problem with all-numeric user names
+Fix possible memory leak and core dump during disconnect in libpgtcl
+Make plpython's spi_execute command handle nulls properly (Andrew Bosma)
+Adjust plpython error reporting so that its regression test passes again
+Work with bison 1.875
+Handle mixed-case names properly in plpgsql's %type (Neil)
+Fix core dump in pltcl when executing a query rewritten by a rule
+Repair array subscript overruns (per report from Yichen Xie)
+Reduce MAX_TIME_PRECISION from 13 to 10 in floating-point case
+Correctly case-fold variable names in per-database and per-user settings
+Fix coredump in plpgsql's RETURN NEXT when SELECT into record returns no rows
+Fix outdated use of pg_type.typprtlen in python client interface
+Correctly handle fractional seconds in timestamps in JDBC driver
+Improve performance of getImportedKeys() in JDBC
+Make shared-library symlinks work standardly on HPUX (Giles)
+Repair inconsistent rounding behavior for timestamp, time, interval
+SSL negotiation fixes (Nathan Mueller)
+Make libpq's ~/.pgpass feature work when connecting with PQconnectDB
+Update my2pg, ora2pg
+Translation updates
+Add casts between types lo and oid in contrib/lo
+fastpath code now checks for privilege to call function
+
+
+
+
+
Release 7.3.1
+
+  Release date
+  2002-12-18
+
+  This release contains a variety of fixes for version 7.3.
+
+
+  Migration to Version 7.3.1
+
+  
+   A dump/restore is not required for those
+   running version 7.3. However, it should be noted that the main
+   PostgreSQL interface library, libpq,
+   has a new major version number for this release, which might require
+   recompilation of client code in certain cases.
+  
+
+  Changes
+
+
+Fix a core dump of COPY TO when client/server encodings don't match (Tom)
+Allow pg_dump to work with pre-7.2 servers (Philip)
+contrib/adddepend fixes (Tom)
+Fix problem with deletion of per-user/per-database config settings (Tom)
+contrib/vacuumlo fix (Tom)
+Allow 'password' encryption even when pg_shadow contains MD5 passwords (Bruce)
+contrib/dbmirror fix (Steven Singer)
+Optimizer fixes (Tom)
+contrib/tsearch fixes (Teodor Sigaev, Magnus)
+Allow locale names to be mixed case (Nicolai Tufar)
+Increment libpq library's major version number (Bruce)
+pg_hba.conf error reporting fixes (Bruce, Neil)
+Add SCO Openserver 5.0.4 as a supported platform (Bruce)
+Prevent EXPLAIN from crashing server (Tom)
+SSL fixes (Nathan Mueller)
+Prevent composite column creation via ALTER TABLE (Tom)
+
+
+
+
+
Release 7.3
+
+  Release date
+  2002-11-27
+
+  Overview
+
+  
+   Major changes in this release:
+  
+
+  
+   
+    Schemas
+    
+     
+      Schemas allow users to create objects in separate namespaces,
+      so two people or applications can have tables with the same
+      name. There is also a public schema for shared tables.
+      Table/index creation can be restricted by removing privileges
+      on the public schema.
+     
+    
+   
+
+   
+    Drop Column
+    
+     
+      PostgreSQL now supports the
+      ALTER TABLE ... DROP COLUMN functionality.
+     
+    
+   
+
+   
+    Table Functions
+    
+     
+      Functions returning multiple rows and/or multiple columns are
+      now much easier to use than before.  You can call such a
+      table function in the SELECT
+      FROM clause, treating its output like a
+      table. Also, PL/pgSQL functions can
+      now return sets.
+     
+    
+   
+
+   
+    Prepared Queries
+    
+     
+      PostgreSQL now supports prepared
+      queries, for improved performance.
+     
+    
+   
+
+   
+    Dependency Tracking
+    
+     
+      PostgreSQL now records object
+      dependencies, which allows improvements in many areas.
+      DROP statements now take either
+      CASCADE or RESTRICT to control whether
+      dependent objects are also dropped.
+     
+    
+   
+
+   
+    Privileges
+    
+     
+      Functions and procedural languages now have privileges, and
+      functions can be defined to run with the privileges of their
+      creator.
+     
+    
+   
+
+   
+    Internationalization
+    
+     
+      Both multibyte and locale support are now always enabled.
+     
+    
+   
+
+   
+    Logging
+    
+     
+      A variety of logging options have been enhanced.
+     
+    
+   
+
+   
+    Interfaces
+    
+     
+      A large number of interfaces have been moved to 
+      url="http://gborg.postgresql.org">http://gborg.postgresql.org
+      where they can be developed and released independently.
+     
+    
+   
+
+   
+    Functions/Identifiers
+    
+     
+      By default, functions can now take up to 32 parameters, and
+      identifiers can be up to 63 bytes long.  Also, OPAQUE
+      is now deprecated: there are specific pseudo-datatypes
+      to represent each of the former meanings of OPAQUE
+      in function argument and result types.
+     
+    
+   
+
+  
+
+  Migration to Version 7.3
+
+  
+   A dump/restore using pg_dump is required for those
+   wishing to migrate data from any previous release. If your
+   application examines the system catalogs, additional changes will
+   be required due to the introduction of schemas in 7.3; for more
+   information, see: 
+   url="http://developer.postgresql.org/~momjian/upgrade_tips_7.3">.
+  
+
+  
+   Observe the following incompatibilities:
+  
+
+  
+   
+    
+     Pre-6.3 clients are no longer supported.
+    
+   
+
+   
+    
+     pg_hba.conf now has a column for the user
+     name and additional features.  Existing files need to be
+     adjusted.
+    
+   
+
+   
+    
+     Several postgresql.conf logging parameters
+     have been renamed.
+    
+   
+
+   
+    
+     LIMIT #,# has been disabled; use
+     LIMIT # OFFSET #.
+    
+   
+
+   
+    
+     INSERT statements with column lists must
+     specify a value for each specified column. For example,
+     INSERT INTO tab (col1, col2) VALUES ('val1')
+     is now invalid.  It's still allowed to supply fewer columns than
+     expected if the INSERT does not have a column list.
+    
+   
+
+   
+    
+     serial columns are no longer automatically
+     UNIQUE; thus, an index will not automatically be
+     created.
+    
+   
+
+   
+    
+     A SET command inside an aborted transaction
+     is now rolled back.
+    
+   
+
+   
+    
+     COPY no longer considers missing trailing
+     columns to be null.  All columns need to be specified.
+     (However, one can achieve a similar effect by specifying a
+     column list in the COPY command.)
+    
+   
+
+   
+    
+     The data type timestamp is now equivalent to
+     timestamp without time zone, instead of
+     timestamp with time zone.
+    
+   
+
+   
+    
+     Pre-7.3 databases loaded into 7.3 will not have the new object
+     dependencies for serial columns, unique
+     constraints, and foreign keys. See the directory
+     contrib/adddepend/ for a detailed
+     description and a script that will add such dependencies.
+    
+   
+
+   
+    
+     An empty string ('') is no longer allowed as
+     the input into an integer field.  Formerly, it was silently
+     interpreted as 0.
+    
+   
+
+  
+
+  Changes
+
+  
+   Server Operation
+
+Add pg_locks view to show locks (Neil)
+Security fixes for password negotiation memory allocation (Neil)
+Remove support for version 0 FE/BE protocol (PostgreSQL 6.2 and earlier) (Tom)
+Reserve the last few backend slots for superusers, add parameter superuser_reserved_connections to control this (Nigel J. Andrews)
+
+  
+
+  
+   Performance
+
+Improve startup by calling localtime() only once (Tom)
+Cache system catalog information in flat files for faster startup (Tom)
+Improve caching of index information (Tom)
+Optimizer improvements (Tom, Fernando Nasser)
+Catalog caches now store failed lookups (Tom)
+Hash function improvements (Neil)
+Improve performance of query tokenization and network handling (Peter)
+Speed improvement for large object restore (Mario Weilguni)
+Mark expired index entries on first lookup, saving later heap fetches (Tom)
+Avoid excessive NULL bitmap padding (Manfred Koizar)
+Add BSD-licensed qsort() for Solaris, for performance (Bruce)
+Reduce per-row overhead by four bytes (Manfred Koizar)
+Fix GEQO optimizer bug (Neil Conway)
+Make WITHOUT OID actually save four bytes per row (Manfred Koizar)
+Add default_statistics_target variable to specify ANALYZE buckets (Neil)
+Use local buffer cache for temporary tables so no WAL overhead (Tom)
+Improve free space map performance on large tables (Stephen Marshall, Tom)
+Improved WAL write concurrency (Tom)
+
+  
+
+  
+   Privileges
+
+Add privileges on functions and procedural languages (Peter)
+Add OWNER to CREATE DATABASE so superusers can create databases on behalf of unprivileged users (Gavin Sherry, Tom)
+Add new object privilege bits EXECUTE and USAGE (Tom)
+Add SET SESSION AUTHORIZATION DEFAULT and RESET SESSION AUTHORIZATION (Tom)
+Allow functions to be executed with the privilege of the function owner (Peter)
+
+  
+
+  
+   Server Configuration
+
+Server log messages now tagged with LOG, not DEBUG (Bruce)
+Add user column to pg_hba.conf (Bruce)
+Have log_connections output two lines in log file (Tom)
+Remove debug_level from postgresql.conf, now server_min_messages (Bruce)
+New ALTER DATABASE/USER ... SET command for per-user/database initialization (Peter)
+New parameters server_min_messages and client_min_messages to control which messages are sent to the server logs or client applications (Bruce)
+Allow pg_hba.conf to specify lists of users/databases separated by commas, group names prepended with +, and file names prepended with @ (Bruce)
+Remove secondary password file capability and pg_password utility (Bruce)
+Add variable db_user_namespace for database-local user names (Bruce)
+SSL improvements (Bear Giles)
+Make encryption of stored passwords the default (Bruce)
+Allow pg_statistics to be reset by calling pg_stat_reset() (Christopher)
+Add log_duration parameter (Bruce)
+Rename debug_print_query to log_statement (Bruce)
+Rename show_query_stats to show_statement_stats (Bruce)
+Add param log_min_error_statement to print commands to logs on error (Gavin)
+
+  
+
+  
+   Queries
+
+Make cursors insensitive, meaning their contents do not change (Tom)
+Disable LIMIT #,# syntax; now only LIMIT # OFFSET # supported (Bruce)
+Increase identifier length to 63 (Neil, Bruce)
+UNION fixes for merging >= 3 columns of different lengths (Tom)
+Add DEFAULT key word to INSERT, e.g., INSERT ... (..., DEFAULT, ...) (Rod)
+Allow views to have default values using ALTER COLUMN ... SET DEFAULT (Neil)
+Fail on INSERTs with column lists that don't supply all column values, e.g., INSERT INTO tab (col1, col2) VALUES ('val1');  (Rod)
+Fix for join aliases (Tom)
+Fix for FULL OUTER JOINs (Tom)
+Improve reporting of invalid identifier and location (Tom, Gavin)
+Fix OPEN cursor(args) (Tom)
+Allow 'ctid' to be used in a view and currtid(viewname) (Hiroshi)
+Fix for CREATE TABLE AS with UNION (Tom)
+SQL99 syntax improvements (Thomas)
+Add statement_timeout variable to cancel queries (Bruce)
+Allow prepared queries with PREPARE/EXECUTE (Neil)
+Allow FOR UPDATE to appear after LIMIT/OFFSET (Bruce)
+Add variable autocommit (Tom, David Van Wie)
+
+  
+
+  
+   Object Manipulation
+
+Make equals signs optional in CREATE DATABASE (Gavin Sherry)
+Make ALTER TABLE OWNER change index ownership too (Neil)
+New ALTER TABLE tabname ALTER COLUMN colname SET STORAGE controls TOAST storage, compression (John Gray)
+Add schema support, CREATE/DROP SCHEMA (Tom)
+Create schema for temporary tables (Tom)
+Add variable search_path for schema search (Tom)
+Add ALTER TABLE SET/DROP NOT NULL (Christopher)
+New CREATE FUNCTION volatility levels (Tom)
+Make rule names unique only per table (Tom)
+Add 'ON tablename' clause to DROP RULE and COMMENT ON RULE (Tom)
+Add ALTER TRIGGER RENAME (Joe)
+New current_schema() and current_schemas() inquiry functions (Tom)
+Allow functions to return multiple rows (table functions) (Joe)
+Make WITH optional in CREATE DATABASE, for consistency (Bruce)
+Add object dependency tracking (Rod, Tom)
+Add RESTRICT/CASCADE to DROP commands (Rod)
+Add ALTER TABLE DROP for non-CHECK CONSTRAINT (Rod)
+Autodestroy sequence on DROP of table with SERIAL (Rod)
+Prevent column dropping if column is used by foreign key (Rod)
+Automatically drop constraints/functions when object is dropped (Rod)
+Add CREATE/DROP OPERATOR CLASS (Bill Studenmund, Tom)
+Add ALTER TABLE DROP COLUMN (Christopher, Tom, Hiroshi)
+Prevent inherited columns from being removed or renamed (Alvaro Herrera)
+Fix foreign key constraints to not error on intermediate database states (Stephan)
+Propagate column or table renaming to foreign key constraints
+Add CREATE OR REPLACE VIEW (Gavin, Neil, Tom)
+Add CREATE OR REPLACE RULE (Gavin, Neil, Tom)
+Have rules execute alphabetically, returning more predictable values (Tom)
+Triggers are now fired in alphabetical order (Tom)
+Add /contrib/adddepend to handle pre-7.3 object dependencies (Rod)
+Allow better casting when inserting/updating values (Tom)
+
+  
+
+  
+   Utility Commands
+
+Have COPY TO output embedded carriage returns and newlines as \r and \n (Tom)
+Allow DELIMITER in COPY FROM to be 8-bit clean (Tatsuo)
+Make pg_dump use ALTER TABLE ADD PRIMARY KEY, for performance (Neil)
+Disable brackets in multistatement rules (Bruce)
+Disable VACUUM from being called inside a function (Bruce)
+Allow dropdb and other scripts to use identifiers with spaces (Bruce)
+Restrict database comment changes to the current database
+Allow comments on operators, independent of the underlying function (Rod)
+Rollback SET commands in aborted transactions (Tom)
+EXPLAIN now outputs as a query (Tom)
+Display condition expressions and sort keys in EXPLAIN (Tom)
+Add 'SET LOCAL var = value' to set configuration variables for a single transaction (Tom)
+Allow ANALYZE to run in a transaction (Bruce)
+Improve COPY syntax using new WITH clauses, keep backward compatibility (Bruce)
+Fix pg_dump to consistently output tags in non-ASCII dumps (Bruce)
+Make foreign key constraints clearer in dump file (Rod)
+Add COMMENT ON CONSTRAINT (Rod)
+Allow COPY TO/FROM to specify column names (Brent Verner)
+Dump UNIQUE and PRIMARY KEY constraints as ALTER TABLE (Rod)
+Have SHOW output a query result (Joe)
+Generate failure on short COPY lines rather than pad NULLs (Neil)
+Fix CLUSTER to preserve all table attributes (Alvaro Herrera)
+New pg_settings table to view/modify GUC settings (Joe)
+Add smart quoting, portability improvements to pg_dump output (Peter)
+Dump serial columns out as SERIAL (Tom)
+Enable large file support, >2G for pg_dump (Peter, Philip Warner, Bruce)
+Disallow TRUNCATE on tables that are involved in referential constraints (Rod)
+Have TRUNCATE also auto-truncate the toast table of the relation (Tom)
+Add clusterdb utility that will auto-cluster an entire database based on previous CLUSTER operations (Alvaro Herrera)
+Overhaul pg_dumpall (Peter)
+Allow REINDEX of TOAST tables (Tom)
+Implemented START TRANSACTION, per SQL99 (Neil)
+Fix rare index corruption when a page split affects bulk delete (Tom)
+Fix ALTER TABLE ... ADD COLUMN for inheritance (Alvaro Herrera)
+
+  
+
+  
+   Data Types and Functions
+
+Fix factorial(0) to return 1 (Bruce)
+Date/time/timezone improvements (Thomas)
+Fix for array slice extraction (Tom)
+Fix extract/date_part to report proper microseconds for timestamp (Tatsuo)
+Allow text_substr() and bytea_substr() to read TOAST values more efficiently (John Gray)
+Add domain support (Rod)
+Make WITHOUT TIME ZONE the default for TIMESTAMP and TIME data types (Thomas)
+Allow alternate storage scheme of 64-bit integers for date/time types using --enable-integer-datetimes in configure (Thomas)
+Make timezone(timestamptz) return timestamp rather than a string (Thomas)
+Allow fractional seconds in date/time types for dates prior to 1BC (Thomas)
+Limit timestamp data types to 6 decimal places of precision (Thomas)
+Change timezone conversion functions from timetz() to timezone() (Thomas)
+Add configuration variables datestyle and timezone (Tom)
+Add OVERLAY(), which allows substitution of a substring in a string (Thomas)
+Add SIMILAR TO (Thomas, Tom)
+Add regular expression SUBSTRING(string FROM pat FOR escape) (Thomas)
+Add LOCALTIME and LOCALTIMESTAMP functions (Thomas)
+Add named composite types using CREATE TYPE typename AS (column) (Joe)
+Allow composite type definition in the table alias clause (Joe)
+Add new API to simplify creation of C language table functions (Joe)
+Remove ODBC-compatible empty parentheses from calls to SQL99 functions for which these parentheses do not match the standard (Thomas)
+Allow macaddr data type to accept 12 hex digits with no separators (Mike Wyer)
+Add CREATE/DROP CAST (Peter)
+Add IS DISTINCT FROM operator (Thomas)
+Add SQL99 TREAT() function, synonym for CAST() (Thomas)
+Add pg_backend_pid() to output backend pid (Bruce)
+Add IS OF / IS NOT OF type predicate (Thomas)
+Allow bit string constants without fully-specified length (Thomas)
+Allow conversion between 8-byte integers and bit strings (Thomas)
+Implement hex literal conversion to bit string literal (Thomas)
+Allow table functions to appear in the FROM clause (Joe)
+Increase maximum number of function parameters to 32 (Bruce)
+No longer automatically create index for SERIAL column (Tom)
+Add current_database() (Rod)
+Fix cash_words() to not overflow buffer (Tom)
+Add functions replace(), split_part(), to_hex() (Joe)
+Fix LIKE for bytea as a right-hand argument (Joe)
+Prevent crashes caused by SELECT cash_out(2) (Tom)
+Fix to_char(1,'FM999.99') to return a period (Karel)
+Fix trigger/type/language functions returning OPAQUE to return proper type (Tom)
+
+  
+
+  
+   Internationalization
+
+Add additional encodings: Korean (JOHAB), Thai (WIN874), Vietnamese (TCVN), Arabic (WIN1256), Simplified Chinese (GBK), Korean (UHC) (Eiji Tokuya)
+Enable locale support by default (Peter)
+Add locale variables (Peter)
+Escape byes >= 0x7f for multibyte in PQescapeBytea/PQunescapeBytea (Tatsuo)
+Add locale awareness to regular expression character classes
+Enable multibyte support by default (Tatsuo)
+Add GB18030 multibyte support (Bill Huang)
+Add CREATE/DROP CONVERSION, allowing loadable encodings (Tatsuo, Kaori)
+Add pg_conversion table (Tatsuo)
+Add SQL99 CONVERT() function (Tatsuo)
+pg_dumpall, pg_controldata, and pg_resetxlog now national-language aware (Peter)
+New and updated translations
+
+  
+
+  
+   Server-side Languages
+
+Allow recursive SQL function (Peter)
+Change PL/Tcl build to use configured compiler and Makefile.shlib (Peter)
+Overhaul the PL/pgSQL FOUND variable to be more Oracle-compatible (Neil, Tom)
+Allow PL/pgSQL to handle quoted identifiers (Tom)
+Allow set-returning PL/pgSQL functions (Neil)
+Make PL/pgSQL schema-aware (Joe)
+Remove some memory leaks (Nigel J. Andrews, Tom)
+
+  
+
+  
+   psql
+
+Don't lowercase psql \connect database name for 7.2.0 compatibility (Tom)
+Add psql \timing to time user queries (Greg Sabino Mullane)
+Have psql \d show index information (Greg Sabino Mullane)
+New psql \dD shows domains (Jonathan Eisler)
+Allow psql to show rules on views (Paul ?)
+Fix for psql variable substitution (Tom)
+Allow psql \d to show temporary table structure (Tom)
+Allow psql \d to show foreign keys (Rod)
+Fix \? to honor \pset pager (Bruce)
+Have psql reports its version number on startup (Tom)
+Allow \copy to specify column names (Tom)
+
+  
+
+  
+   libpq
+
+Add ~/.pgpass to store host/user password combinations (Alvaro Herrera)
+Add PQunescapeBytea() function to libpq (Patrick Welche)
+Fix for sending large queries over non-blocking connections (Bernhard Herzog)
+Fix for libpq using timers on Win9X (David Ford)
+Allow libpq notify to handle servers with different-length identifiers (Tom)
+Add libpq PQescapeString() and PQescapeBytea() to Windows (Bruce)
+Fix for SSL with non-blocking connections (Jack Bates)
+Add libpq connection timeout parameter (Denis A Ustimenko)
+
+  
+
+  
+   JDBC
+
+Allow JDBC to compile with JDK 1.4 (Dave)
+Add JDBC 3 support (Barry)
+Allows JDBC to set loglevel by adding ?loglevel=X to the connection URL (Barry)
+Add Driver.info() message that prints out the version number (Barry)
+Add updateable result sets (Raghu Nidagal, Dave)
+Add support for callable statements (Paul Bethe)
+Add query cancel capability
+Add refresh row (Dave)
+Fix MD5 encryption handling for multibyte servers (Jun Kawai)
+Add support for prepared statements (Barry)
+
+  
+
+  
+   Miscellaneous Interfaces
+
+Fixed ECPG bug concerning octal numbers in single quotes (Michael)
+Move src/interfaces/libpgeasy to http://gborg.postgresql.org (Marc, Bruce)
+Improve Python interface (Elliot Lee, Andrew Johnson, Greg Copeland)
+Add libpgtcl connection close event (Gerhard Hintermayer)
+Move src/interfaces/libpq++ to http://gborg.postgresql.org (Marc, Bruce)
+Move src/interfaces/odbc to http://gborg.postgresql.org (Marc)
+Move src/interfaces/libpgeasy to http://gborg.postgresql.org (Marc, Bruce)
+Move src/interfaces/perl5 to http://gborg.postgresql.org (Marc, Bruce)
+Remove src/bin/pgaccess from main tree, now at http://www.pgaccess.org (Bruce)
+Add pg_on_connection_loss command to libpgtcl (Gerhard Hintermayer, Tom)
+
+  
+
+  
+   Source Code
+
+Fix for parallel make (Peter)
+AIX fixes for linking Tcl (Andreas Zeugswetter)
+Allow PL/Perl to build under Cygwin (Jason Tishler)
+Improve MIPS compiles (Peter, Oliver Elphick)
+Require Autoconf version 2.53 (Peter)
+Require readline and zlib by default in configure (Peter)
+Allow Solaris to use Intimate Shared Memory (ISM), for performance (Scott Brunza, P.J. Josh Rovero)
+Always enable syslog in compile, remove --enable-syslog option (Tatsuo)
+Always enable multibyte in compile, remove --enable-multibyte option (Tatsuo)
+Always enable locale in compile, remove --enable-locale option (Peter)
+Fix for Win9x DLL creation (Magnus Naeslund)
+Fix for link() usage by WAL code on Windows, BeOS (Jason Tishler)
+Add sys/types.h to c.h, remove from main files (Peter, Bruce)
+Fix AIX hang on SMP machines (Tomoyuki Niijima)
+AIX SMP hang fix (Tomoyuki Niijima)
+Fix pre-1970 date handling on newer glibc libraries (Tom)
+Fix PowerPC SMP locking (Tom)
+Prevent gcc -ffast-math from being used (Peter, Tom)
+Bison >= 1.50 now required for developer builds
+Kerberos 5 support now builds with Heimdal (Peter)
+Add appendix in the User's Guide which lists SQL features (Thomas)
+Improve loadable module linking to use RTLD_NOW (Tom)
+New error levels WARNING, INFO, LOG, DEBUG[1-5] (Bruce)
+New src/port directory holds replaced libc functions (Peter, Bruce)
+New pg_namespace system catalog for schemas (Tom)
+Add pg_class.relnamespace for schemas (Tom)
+Add pg_type.typnamespace for schemas (Tom)
+Add pg_proc.pronamespace for schemas (Tom)
+Restructure aggregates to have pg_proc entries (Tom)
+System relations now have their own namespace, pg_* test not required (Fernando Nasser)
+Rename TOAST index names to be *_index rather than *_idx (Neil)
+Add namespaces for operators, opclasses (Tom)
+Add additional checks to server control file (Thomas)
+New Polish FAQ (Marcin Mazurek)
+Add Posix semaphore support (Tom)
+Document need for reindex (Bruce)
+Rename some internal identifiers to simplify Windows compile (Jan, Katherine Ward)
+Add documentation on computing disk space (Bruce)
+Remove KSQO from GUC (Bruce)
+Fix memory leak in rtree (Kenneth Been)
+Modify a few error messages for consistency (Bruce)
+Remove unused system table columns (Peter)
+Make system columns NOT NULL where appropriate (Tom)
+Clean up use of sprintf in favor of snprintf() (Neil, Jukka Holappa)
+Remove OPAQUE and create specific subtypes (Tom)
+Cleanups in array internal handling (Joe, Tom)
+Disallow pg_atoi('') (Bruce)
+Remove parameter wal_files because WAL files are now recycled (Bruce)
+Add version numbers to heap pages (Tom)
+
+  
+
+  
+   Contrib
+
+Allow inet arrays in /contrib/array (Neil)
+GiST fixes (Teodor Sigaev, Neil)
+Upgrade /contrib/mysql
+Add /contrib/dbsize which shows table sizes without vacuum (Peter)
+Add /contrib/intagg, integer aggregator routines (mlw)
+Improve /contrib/oid2name (Neil, Bruce)
+Improve /contrib/tsearch (Oleg, Teodor Sigaev)
+Cleanups of /contrib/rserver (Alexey V. Borzov)
+Update /contrib/oracle conversion utility (Gilles Darold)
+Update /contrib/dblink (Joe)
+Improve options supported by /contrib/vacuumlo (Mario Weilguni)
+Improvements to /contrib/intarray (Oleg, Teodor Sigaev, Andrey Oktyabrski)
+Add /contrib/reindexdb utility (Shaun Thomas)
+Add indexing to /contrib/isbn_issn (Dan Weston)
+Add /contrib/dbmirror (Steven Singer)
+Improve /contrib/pgbench (Neil)
+Add /contrib/tablefunc table function examples (Joe)
+Add /contrib/ltree data type for tree structures (Teodor Sigaev, Oleg Bartunov)
+Move /contrib/pg_controldata, pg_resetxlog into main tree (Bruce)
+Fixes to /contrib/cube (Bruno Wolff)
+Improve /contrib/fulltextindex (Christopher)
+
+  
+
+
+
+  Release 7.2.8
+
+  
+  Release date
+  2005-05-09
+  
+
+  
+   This release contains a variety of fixes from 7.2.7, including one
+   security-related issue.
+  
+
+  
+   Migration to Version 7.2.8
+
+   
+    A dump/restore is not required for those running 7.2.X.
+   
+  
+
+  
+   Changes
+
+
+Repair ancient race condition that allowed a transaction to be
+seen as committed for some purposes (eg SELECT FOR UPDATE) slightly sooner
+than for other purposes
+This is an extremely serious bug since it could lead to apparent
+data inconsistencies being briefly visible to applications.
+Repair race condition between relation extension and
+VACUUM
+This could theoretically have caused loss of a page's worth of
+freshly-inserted data, although the scenario seems of very low probability.
+There are no known cases of it having caused more than an Assert failure.
+
+Fix EXTRACT(EPOCH) for
+TIME WITH TIME ZONE values
+Additional buffer overrun checks in plpgsql
+(Neil)
+Fix pg_dump to dump index names and trigger names containing
+% correctly (Neil)
+Prevent to_char(interval) from dumping core for
+month-related formats
+Fix contrib/pgcrypto for newer OpenSSL builds
+(Marko Kreen)
+
+
+
+
+  Release 7.2.7
+
+  
+  Release date
+  2005-01-31
+  
+
+  
+   This release contains a variety of fixes from 7.2.6, including several
+   security-related issues.
+  
+
+  
+   Migration to Version 7.2.7
+
+   
+    A dump/restore is not required for those running 7.2.X.
+   
+  
+
+  
+   Changes
+
+
+Disallow LOAD to non-superusers
+
+On platforms that will automatically execute initialization functions of a
+shared library (this includes at least Windows and ELF-based Unixen),
+LOAD can be used to make the server execute arbitrary code.
+Thanks to NGS Software for reporting this.
+Add needed STRICT marking to some contrib functions (Kris
+Jurka)
+Avoid buffer overrun when plpgsql cursor declaration has too
+many parameters (Neil)
+Fix planning error for FULL and RIGHT outer joins
+
+The result of the join was mistakenly supposed to be sorted the same as the
+left input.  This could not only deliver mis-sorted output to the user, but
+in case of nested merge joins could give outright wrong answers.
+
+Fix display of negative intervals in SQL and GERMAN
+datestyles
+
+
+
+
+  Release 7.2.6
+
+  
+  Release date
+  2004-10-22
+  
+
+  
+   This release contains a variety of fixes from 7.2.5.
+  
+
+
+  
+   Migration to Version 7.2.6
+
+   
+    A dump/restore is not required for those running 7.2.X.
+   
+  
+
+  
+   Changes
+
+
+Repair possible failure to update hint bits on disk
+
+Under rare circumstances this oversight could lead to
+could not access transaction status failures, which qualifies
+it as a potential-data-loss bug.
+
+Ensure that hashed outer join does not miss tuples
+
+Very large left joins using a hash join plan could fail to output unmatched
+left-side rows given just the right data distribution.
+
+Disallow running pg_ctl as root
+
+This is to guard against any possible security issues.
+
+Avoid using temp files in /tmp in make_oidjoins_check
+
+This has been reported as a security issue, though it's hardly worthy of
+concern since there is no reason for non-developers to use this script anyway.
+
+Update to newer versions of Bison
+
+
+
+
+  Release 7.2.5
+
+  
+  Release date
+  2004-08-16
+  
+
+  
+   This release contains a variety of fixes from 7.2.4.
+  
+
+
+  
+   Migration to Version 7.2.5
+
+   
+    A dump/restore is not required for those running 7.2.X.
+   
+  
+
+  
+   Changes
+
+
+Prevent possible loss of committed transactions during crash
+
+Due to insufficient interlocking between transaction commit and checkpointing,
+it was possible for transactions committed just before the most recent
+checkpoint to be lost, in whole or in part, following a database crash and
+restart.  This is a serious bug that has existed
+since PostgreSQL 7.1.
+
+Fix corner case for btree search in parallel with first root page split
+Fix buffer overrun in to_ascii (Guido Notari)
+Fix core dump in deadlock detection on machines where char is unsigned
+Fix failure to respond to pg_ctl stop -m fast after Async_NotifyHandler runs
+Repair memory leaks in pg_dump
+Avoid conflict with system definition of isblank() function or macro
+
+
+
+
Release 7.2.4
+
+  Release date
+  2003-01-30
+
+  This release contains a variety of fixes for version 7.2.3,
+  including fixes to prevent possible data loss.
+
+  Migration to Version 7.2.4
+
+  
+   A dump/restore is not required for those
+   running version 7.2.*.
+  
+
+  Changes
+
+
+Fix some additional cases of VACUUM "No one parent tuple was found" error
+Prevent VACUUM from being called inside a function  (Bruce)
+Ensure pg_clog updates are sync'd to disk before marking checkpoint complete
+Avoid integer overflow during large hash joins
+Make GROUP commands work when pg_group.grolist is large enough to be toasted
+Fix errors in datetime tables; some timezone names weren't being recognized
+Fix integer overflows in circle_poly(), path_encode(), path_add()  (Neil)
+Repair long-standing logic errors in lseg_eq(), lseg_ne(), lseg_center()
+
+
+
+
+
Release 7.2.3
+
+  Release date
+  2002-10-01
+
+  This release contains a variety of fixes for version 7.2.2,
+  including fixes to prevent possible data loss.
+
+  Migration to Version 7.2.3
+
+  
+   A dump/restore is not required for those
+   running version 7.2.*.
+  
+
+  Changes
+
+
+Prevent possible compressed transaction log loss (Tom)
+Prevent non-superuser from increasing most recent vacuum info (Tom)
+Handle pre-1970 date values in newer versions of glibc (Tom)
+Fix possible hang during server shutdown
+Prevent spinlock hangs on SMP PPC machines (Tomoyuki Niijima)
+Fix pg_dump to properly dump FULL JOIN USING (Tom)
+
+
+
+
+
Release 7.2.2
+
+  Release date
+  2002-08-23
+
+  This release contains a variety of fixes for version 7.2.1.
+
+  Migration to Version 7.2.2
+
+  
+   A dump/restore is not required for those
+   running version 7.2.*.
+  
+
+  Changes
+
+
+Allow EXECUTE of "CREATE TABLE AS ... SELECT" in PL/pgSQL (Tom)
+Fix for compressed transaction log id wraparound (Tom)
+Fix PQescapeBytea/PQunescapeBytea so that they handle bytes > 0x7f (Tatsuo)
+Fix for psql and pg_dump crashing when invoked with non-existent long options (Tatsuo)
+Fix crash when invoking geometric operators (Tom)
+Allow OPEN cursor(args) (Tom)
+Fix for rtree_gist index build (Teodor)
+Fix for dumping user-defined aggregates (Tom)
+contrib/intarray fixes (Oleg)
+Fix for complex UNION/EXCEPT/INTERSECT queries using parens (Tom)
+Fix to pg_convert (Tatsuo)
+Fix for crash with long DATA strings (Thomas, Neil)
+Fix for repeat(), lpad(), rpad() and long strings (Neil)
+
+
+
+
+
Release 7.2.1
+
+  Release date
+  2002-03-21
+
+  This release contains a variety of fixes for version 7.2.
+
+  Migration to Version 7.2.1
+
+  
+   A dump/restore is not required for those
+   running version 7.2.
+  
+
+  Changes
+
+
+Ensure that sequence counters do not go backwards after a crash (Tom)
+Fix pgaccess kanji-conversion key binding (Tatsuo)
+Optimizer improvements (Tom)
+Cash I/O improvements (Tom)
+New Russian FAQ
+Compile fix for missing AuthBlockSig (Heiko)
+Additional time zones and time zone fixes (Thomas)
+Allow psql \connect to handle mixed case database and user names (Tom)
+Return proper OID on command completion even with ON INSERT rules (Tom)
+Allow COPY FROM to use 8-bit DELIMITERS (Tatsuo)
+Fix bug in extract/date_part for milliseconds/microseconds (Tatsuo)
+Improve handling of multiple UNIONs with different lengths (Tom)
+contrib/btree_gist improvements (Teodor Sigaev)
+contrib/tsearch dictionary improvements, see README.tsearch for an additional installation step (Thomas T. Thai, Teodor Sigaev)
+Fix for array subscripts handling (Tom)
+Allow EXECUTE of "CREATE TABLE AS ... SELECT" in PL/pgSQL (Tom)
+
+
+
+
+
Release 7.2
+
+  Release date
+  2002-02-04
+
+  Overview
+
+  
+   This release improves PostgreSQL for use in
+   high-volume applications.
+  
+
+  
+   Major changes in this release:
+  
+
+  
+   
+    VACUUM
+    
+     
+      Vacuuming no longer locks tables, thus allowing normal user
+      access during the vacuum.  A new VACUUM FULL
+      command does old-style vacuum by locking the table and
+      shrinking the on-disk copy of the table.
+     
+    
+   
+
+   
+    Transactions
+    
+     
+      There is no longer a problem with installations that exceed
+      four billion transactions.
+     
+    
+   
+
+   
+    OIDs
+    
+     
+      OIDs are now optional.  Users can now create tables without
+      OIDs for cases where OID usage is excessive.
+     
+    
+   
+
+   
+    Optimizer
+    
+     
+      The system now computes histogram column statistics during
+      ANALYZE, allowing much better optimizer choices.
+     
+    
+   
+
+   
+    Security
+    
+     
+      A new MD5 encryption option allows more secure storage and
+      transfer of passwords.  A new Unix-domain socket
+      authentication option is available on Linux and BSD systems.
+     
+    
+   
+
+   
+    Statistics
+    
+     
+      Administrators can use the new table access statistics module
+      to get fine-grained information about table and index usage.
+     
+    
+   
+
+   
+    Internationalization
+    
+     
+      Program and library messages can now be displayed in several
+      languages.
+     
+    
+   
+
+  
+
+  Migration to Version 7.2
+
+  
+   A dump/restore using pg_dump is required for
+   those wishing to migrate data from any previous release.
+  
+
+  
+   Observe the following incompatibilities:
+  
+
+  
+   
+    
+     The semantics of the VACUUM command have
+     changed in this release.  You might wish to update your
+     maintenance procedures accordingly.
+    
+   
+
+   
+    
+     In this release, comparisons using = NULL
+     will always return false (or NULL, more precisely).  Previous
+     releases automatically transformed this syntax to IS
+     NULL.  The old behavior can be re-enabled using a
+     postgresql.conf parameter.
+    
+   
+
+   
+    
+     The pg_hba.conf and pg_ident.conf
+     configuration is now only reloaded after receiving a
+     SIGHUP signal, not with each connection.
+    
+   
+
+   
+    
+     The function octet_length() now returns the uncompressed data length.
+    
+   
+
+   
+    
+     The date/time value 'current' is no longer
+     available.  You will need to rewrite your applications.
+    
+   
+
+   
+    
+     The timestamp()time(),
+     and interval() functions are no longer
+     available.  Instead of timestamp(), use
+     timestamp 'string' or CAST.
+    
+   
+
+  
+
+  
+   The SELECT ... LIMIT #,# syntax will be removed
+   in the next release. You should change your queries to use
+   separate LIMIT and OFFSET clauses, e.g. LIMIT 10 OFFSET
+   20.
+  
+
+  Changes
+
+  
+   Server Operation
+
+Create temporary files in a separate directory (Bruce)
+Delete orphaned temporary files on postmaster startup (Bruce)
+Added unique indexes to some system tables (Tom)
+System table operator reorganization (Oleg Bartunov, Teodor Sigaev, Tom)
+Renamed pg_log to pg_clog (Tom)
+Enable SIGTERM, SIGQUIT to kill backends (Jan)
+Removed compile-time limit on number of backends (Tom)
+Better cleanup for semaphore resource failure (Tatsuo, Tom)
+Allow safe transaction ID wraparound (Tom)
+Removed OIDs from some system tables (Tom)
+Removed "triggered data change violation" error check (Tom)
+SPI portal creation of prepared/saved plans (Jan)
+Allow SPI column functions to work for system columns (Tom)
+Long value compression improvement (Tom)
+Statistics collector for table, index access (Jan)
+Truncate extra-long sequence names to a reasonable value (Tom)
+Measure transaction times in milliseconds (Thomas)
+Fix TID sequential scans (Hiroshi)
+Superuser ID now fixed at 1 (Peter E)
+New pg_ctl "reload" option (Tom)
+
+  
+
+  
+   Performance
+
+Optimizer improvements (Tom)
+New histogram column statistics for optimizer (Tom)
+Reuse write-ahead log files rather than discarding them (Tom)
+Cache improvements (Tom)
+IS NULL, IS NOT NULL optimizer improvement (Tom)
+Improve lock manager to reduce lock contention (Tom)
+Keep relcache entries for index access support functions (Tom)
+Allow better selectivity with NaN and infinities in NUMERIC (Tom)
+R-tree performance improvements (Kenneth Been)
+B-tree splits more efficient (Tom)
+
+  
+
+  
+   Privileges
+
+Change UPDATE, DELETE privileges to be distinct (Peter E)
+New REFERENCES, TRIGGER privileges (Peter E)
+Allow GRANT/REVOKE to/from more than one user at a time (Peter E)
+New has_table_privilege() function (Joe Conway)
+Allow non-superuser to vacuum database (Tom)
+New SET SESSION AUTHORIZATION command (Peter E)
+Fix bug in privilege modifications on newly created tables (Tom)
+Disallow access to pg_statistic for non-superuser, add user-accessible views (Tom)
+
+  
+
+  
+   Client Authentication
+
+Fork postmaster before doing authentication to prevent hangs (Peter E)
+Add ident authentication over Unix domain sockets on Linux, *BSD (Helge Bahmann, Oliver Elphick, Teodor Sigaev, Bruce)
+Add a password authentication method that uses MD5 encryption (Bruce)
+Allow encryption of stored passwords using MD5 (Bruce)
+PAM authentication (Dominic J. Eidson)
+Load pg_hba.conf and pg_ident.conf only on startup and SIGHUP (Bruce)
+
+  
+
+  
+   Server Configuration
+
+Interpretation of some time zone abbreviations as Australian rather than North American now settable at run time (Bruce)
+New parameter to set default transaction isolation level (Peter E)
+New parameter to enable conversion of "expr = NULL" into "expr IS NULL", off by default (Peter E)
+New parameter to control memory usage by VACUUM (Tom)
+New parameter to set client authentication timeout (Tom)
+New parameter to set maximum number of open files (Tom)
+
+  
+
+  
+   Queries
+
+Statements added by INSERT rules now execute after the INSERT (Jan)
+Prevent unadorned relation names in target list (Bruce)
+NULLs now sort after all normal values in ORDER BY (Tom)
+New IS UNKNOWN, IS NOT UNKNOWN Boolean tests (Tom)
+New SHARE UPDATE EXCLUSIVE lock mode (Tom)
+New EXPLAIN ANALYZE command that shows run times and row counts (Martijn van Oosterhout)
+Fix problem with LIMIT and subqueries (Tom)
+Fix for LIMIT, DISTINCT ON pushed into subqueries (Tom)
+Fix nested EXCEPT/INTERSECT (Tom)
+
+  
+
+  
+   Schema Manipulation
+
+Fix SERIAL in temporary tables (Bruce)
+Allow temporary sequences (Bruce)
+Sequences now use int8 internally (Tom)
+New SERIAL8 creates int8 columns with sequences, default still SERIAL4 (Tom)
+Make OIDs optional using WITHOUT OIDS (Tom)
+Add %TYPE syntax to CREATE TYPE (Ian Lance Taylor)
+Add ALTER TABLE / DROP CONSTRAINT for CHECK constraints (Christopher Kings-Lynne)
+New CREATE OR REPLACE FUNCTION to alter existing function (preserving the function OID) (Gavin Sherry)
+Add ALTER TABLE / ADD [ UNIQUE | PRIMARY ] (Christopher Kings-Lynne)
+Allow column renaming in views
+Make ALTER TABLE / RENAME COLUMN update column names of indexes (Brent Verner)
+Fix for ALTER TABLE / ADD CONSTRAINT ... CHECK with inherited tables (Stephan Szabo)
+ALTER TABLE RENAME update foreign-key trigger arguments correctly (Brent Verner)
+DROP AGGREGATE and COMMENT ON AGGREGATE now accept an aggtype (Tom)
+Add automatic return type data casting for SQL functions (Tom)
+Allow GiST indexes to handle NULLs and multikey indexes (Oleg Bartunov, Teodor Sigaev, Tom)
+Enable partial indexes (Martijn van Oosterhout)
+
+  
+
+  
+   Utility Commands
+
+Add RESET ALL, SHOW ALL (Marko Kreen)
+CREATE/ALTER USER/GROUP now allow options in any order (Vince)
+Add LOCK A, B, C functionality (Neil Padgett)
+New ENCRYPTED/UNENCRYPTED option to CREATE/ALTER USER (Bruce)
+New light-weight VACUUM does not lock table; old semantics are available as VACUUM FULL (Tom)
+Disable COPY TO/FROM on views (Bruce)
+COPY DELIMITERS string must be exactly one character (Tom)
+VACUUM warning about index tuples fewer than heap now only appears when appropriate (Martijn van Oosterhout)
+Fix privilege checks for CREATE INDEX (Tom)
+Disallow inappropriate use of CREATE/DROP INDEX/TRIGGER/VIEW (Tom)
+
+  
+
+  
+   Data Types and Functions
+
+SUM(), AVG(), COUNT() now uses int8 internally for speed (Tom)
+Add convert(), convert2() (Tatsuo)
+New function bit_length() (Peter E)
+Make the "n" in CHAR(n)/VARCHAR(n) represents letters, not bytes (Tatsuo)
+CHAR(), VARCHAR() now reject strings that are too long (Peter E)
+BIT VARYING now rejects bit strings that are too long (Peter E)
+BIT now rejects bit strings that do not match declared size (Peter E)
+INET, CIDR text conversion functions (Alex Pilosov)
+INET, CIDR operators << and <<= indexable (Alex Pilosov)
+Bytea \### now requires valid three digit octal number
+Bytea comparison improvements, now supports =, <>, >, >=, <, and <=
+Bytea now supports B-tree indexes
+Bytea now supports LIKE, LIKE...ESCAPE, NOT LIKE, NOT LIKE...ESCAPE
+Bytea now supports concatenation
+New bytea functions: position, substring, trim, btrim, and length
+New encode() function mode, "escaped", converts minimally escaped bytea to/from text
+Add pg_database_encoding_max_length() (Tatsuo)
+Add pg_client_encoding() function (Tatsuo)
+now() returns time with millisecond precision (Thomas)
+New TIMESTAMP WITHOUT TIMEZONE data type (Thomas)
+Add ISO date/time specification with "T", yyyy-mm-ddThh:mm:ss (Thomas)
+New xid/int comparison functions (Hiroshi)
+Add precision to TIME, TIMESTAMP, and INTERVAL data types (Thomas)
+Modify type coercion logic to attempt binary-compatible functions first (Tom)
+New encode() function installed by default (Marko Kreen)
+Improved to_*() conversion functions (Karel Zak)
+Optimize LIKE/ILIKE when using single-byte encodings (Tatsuo)
+New functions in contrib/pgcrypto: crypt(), hmac(), encrypt(), gen_salt() (Marko Kreen)
+Correct description of translate() function (Bruce)
+Add INTERVAL argument for SET TIME ZONE (Thomas)
+Add INTERVAL YEAR TO MONTH (etc.) syntax (Thomas)
+Optimize length functions when using single-byte encodings (Tatsuo)
+Fix path_inter, path_distance, path_length, dist_ppath to handle closed paths (Curtis Barrett, Tom)
+octet_length(text) now returns non-compressed length (Tatsuo, Bruce)
+Handle "July" full name in date/time literals (Greg Sabino Mullane)
+Some datatype() function calls now evaluated differently
+Add support for Julian and ISO time specifications (Thomas)
+
+  
+
+  
+   Internationalization
+
+National language support in psql, pg_dump, libpq, and server (Peter E)
+Message translations in Chinese (simplified, traditional), Czech, French, German, Hungarian, Russian, Swedish (Peter E, Serguei A. Mokhov, Karel Zak, Weiping He, Zhenbang Wei, Kovacs Zoltan)
+Make trim, ltrim, rtrim, btrim, lpad, rpad, translate multibyte aware (Tatsuo)
+Add LATIN5,6,7,8,9,10 support (Tatsuo)
+Add ISO 8859-5,6,7,8 support (Tatsuo)
+Correct LATIN5 to mean ISO-8859-9, not ISO-8859-5 (Tatsuo)
+Make mic2ascii() non-ASCII aware (Tatsuo)
+Reject invalid multibyte character sequences (Tatsuo)
+
+  
+
+  
+   <application>PL/pgSQL</>
+
+Now uses portals for SELECT loops, allowing huge result sets (Jan)
+CURSOR and REFCURSOR support (Jan)
+Can now return open cursors (Jan)
+Add ELSEIF (Klaus Reger)
+Improve PL/pgSQL error reporting, including location of error (Tom)
+Allow IS or FOR key words in cursor declaration, for compatibility (Bruce)
+Fix for SELECT ... FOR UPDATE (Tom)
+Fix for PERFORM returning multiple rows (Tom)
+Make PL/pgSQL use the server's type coercion code (Tom)
+Memory leak fix (Jan, Tom)
+Make trailing semicolon optional (Tom)
+
+  
+
+  
+   PL/Perl
+
+New untrusted PL/Perl (Alex Pilosov)
+PL/Perl is now built on some platforms even if libperl is not shared (Peter E)
+
+   
+
+  
+   PL/Tcl
+
+Now reports errorInfo (Vsevolod Lobko)
+Add spi_lastoid function ([email protected])
+
+  
+
+  
+   PL/Python
+
+...is new (Andrew Bosma)
+
+  
+
+  
+   <application>psql</>
+
+\d displays indexes in unique, primary groupings (Christopher Kings-Lynne)
+Allow trailing semicolons in backslash commands (Greg Sabino Mullane)
+Read password from /dev/tty if possible
+Force new password prompt when changing user and database (Tatsuo, Tom)
+Format the correct number of columns for Unicode (Patrice)
+
+  
+
+  
+   <application>libpq</>
+
+New function PQescapeString() to escape quotes in command strings (Florian Weimer)
+New function PQescapeBytea() escapes binary strings for use as SQL string literals
+
+  
+
+  
+   JDBC
+
+Return OID of INSERT (Ken K)
+Handle more data types (Ken K)
+Handle single quotes and newlines in strings (Ken K)
+Handle NULL variables (Ken K)
+Fix for time zone handling (Barry Lind)
+Improved Druid support
+Allow eight-bit characters with non-multibyte server (Barry Lind)
+Support BIT, BINARY types (Ned Wolpert)
+Reduce memory usage (Michael Stephens, Dave Cramer)
+Update DatabaseMetaData (Peter E)
+Add DatabaseMetaData.getCatalogs() (Peter E)
+Encoding fixes (Anders Bengtsson)
+Get/setCatalog methods (Jason Davies)
+DatabaseMetaData.getColumns() now returns column defaults (Jason Davies)
+DatabaseMetaData.getColumns() performance improvement (Jeroen van Vianen)
+Some JDBC1 and JDBC2 merging (Anders Bengtsson)
+Transaction performance improvements (Barry Lind)
+Array fixes (Greg Zoller)
+Serialize addition 
+Fix batch processing (Rene Pijlman)
+ExecSQL method reorganization (Anders Bengtsson)
+GetColumn() fixes (Jeroen van Vianen)
+Fix isWriteable() function (Rene Pijlman)
+Improved passage of JDBC2 conformance tests (Rene Pijlman)
+Add bytea type capability (Barry Lind)
+Add isNullable() (Rene Pijlman)
+JDBC date/time test suite fixes (Liam Stewart)
+Fix for SELECT 'id' AS xxx FROM table (Dave Cramer)
+Fix DatabaseMetaData to show precision properly (Mark Lillywhite)
+New getImported/getExported keys (Jason Davies)
+MD5 password encryption support (Jeremy Wohl)
+Fix to actually use type cache (Ned Wolpert)
+
+  
+
+  
+   ODBC
+
+Remove query size limit (Hiroshi)
+Remove text field size limit (Hiroshi)
+Fix for SQLPrimaryKeys in multibyte mode (Hiroshi)
+Allow ODBC procedure calls (Hiroshi)
+Improve boolean handing (Aidan Mountford)
+Most configuration options now settable via DSN (Hiroshi)
+Multibyte, performance fixes (Hiroshi)
+Allow driver to be used with iODBC or unixODBC (Peter E)
+MD5 password encryption support (Bruce)
+Add more compatibility functions to odbc.sql (Peter E)
+
+  
+
+  
+   <application>ECPG</>
+
+EXECUTE ... INTO implemented (Christof Petig)
+Multiple row descriptor support (e.g. CARDINALITY) (Christof Petig)
+Fix for GRANT parameters (Lee Kindness)
+Fix INITIALLY DEFERRED bug
+Various bug fixes (Michael, Christof Petig)
+Auto allocation for indicator variable arrays (int *ind_p=NULL)
+Auto allocation for string arrays (char **foo_pp=NULL)
+ECPGfree_auto_mem fixed
+All function names with external linkage are now prefixed by ECPG
+Fixes for arrays of structures (Michael)
+
+  
+
+  
+   Misc. Interfaces
+
+Python fix fetchone() (Gerhard Haring)
+Use UTF, Unicode in Tcl where appropriate (Vsevolod Lobko, Reinhard Max)
+Add Tcl COPY TO/FROM (ljb)
+Prevent output of default index op class in pg_dump (Tom)
+Fix libpgeasy memory leak (Bruce)
+
+  
+
+  
+   Build and Install
+
+Configure, dynamic loader, and shared library fixes (Peter E)
+Fixes in QNX 4 port (Bernd Tegge)
+Fixes in Cygwin and Windows ports (Jason Tishler, Gerhard Haring, Dmitry Yurtaev, Darko Prenosil, Mikhail Terekhov)
+Fix for Windows socket communication failures (Magnus, Mikhail Terekhov)
+Hurd compile fix (Oliver Elphick)
+BeOS fixes (Cyril Velter)
+Remove configure --enable-unicode-conversion, now enabled by multibyte (Tatsuo)
+AIX fixes (Tatsuo, Andreas)
+Fix parallel make (Peter E)
+Install SQL language manual pages into OS-specific directories (Peter E)
+Rename config.h to pg_config.h (Peter E)
+Reorganize installation layout of header files (Peter E)
+
+  
+
+  
+   Source Code
+
+Remove SEP_CHAR (Bruce)
+New GUC hooks (Tom)
+Merge GUC and command line handling (Marko Kreen)
+Remove EXTEND INDEX (Martijn van Oosterhout, Tom)
+New pgjindent utility to indent java code (Bruce)
+Remove define of true/false when compiling under C++ (Leandro Fanzone, Tom)
+pgindent fixes (Bruce, Tom)
+Replace strcasecmp() with strcmp() where appropriate (Peter E)
+Dynahash portability improvements (Tom)
+Add 'volatile' usage in spinlock structures
+Improve signal handling logic (Tom)
+
+  
+
+  
+   Contrib
+
+New contrib/rtree_gist (Oleg Bartunov, Teodor Sigaev)
+New contrib/tsearch full-text indexing (Oleg, Teodor Sigaev)
+Add contrib/dblink for remote database access (Joe Conway)
+contrib/ora2pg Oracle conversion utility (Gilles Darold)
+contrib/xml XML conversion utility (John Gray)
+contrib/fulltextindex fixes (Christopher Kings-Lynne)
+New contrib/fuzzystrmatch with levenshtein and metaphone, soundex merged (Joe Conway)
+Add contrib/intarray boolean queries, binary search, fixes (Oleg Bartunov)
+New pg_upgrade utility (Bruce)
+Add new pg_resetxlog options (Bruce, Tom)
+
+  
+
+
+
+  Release 7.1.3
+
+  
+  Release date
+  2001-08-15
+  
+
+  
+   Migration to Version 7.1.3
+
+   
+    A dump/restore is not required for those running
+    7.1.X.
+   
+  
+
+  
+   Changes
+
+   
+    
+Remove unused WAL segments of large transactions (Tom)
+Multiaction rule fix (Tom)
+PL/pgSQL memory allocation fix (Jan)
+VACUUM buffer fix (Tom)
+Regression test fixes (Tom)
+pg_dump fixes for GRANT/REVOKE/comments on views, user-defined types (Tom)
+Fix subselects with DISTINCT ON or LIMIT (Tom)
+BeOS fix
+Disable COPY TO/FROM a view (Tom)
+Cygwin build (Jason Tishler)
+    
+   
+  
+
+
+  Release 7.1.2
+
+  
+  Release date
+  2001-05-11
+  
+
+  
+   This has one fix from 7.1.1.
+  
+
+
+  
+   Migration to Version 7.1.2
+
+   
+    A dump/restore is not required for those running
+    7.1.X.
+   
+  
+
+  
+   Changes
+
+   
+    
+Fix PL/pgSQL SELECTs when returning no rows
+Fix for psql backslash core dump
+Referential integrity privilege fix
+Optimizer fixes
+pg_dump cleanups
+    
+   
+  
+
+
+  Release 7.1.1
+
+  
+  Release date
+  2001-05-05
+  
+
+  
+   This has a variety of fixes from 7.1.
+  
+
+
+  
+   Migration to Version 7.1.1
+
+   
+    A dump/restore is not required for those running
+    7.1.
+   
+  
+
+  
+   Changes
+
+   
+    
+Fix for numeric MODULO operator (Tom)
+pg_dump fixes (Philip)
+pg_dump can dump 7.0 databases (Philip)
+readline 4.2 fixes (Peter E)
+JOIN fixes (Tom)
+AIX, MSWIN, VAX, N32K fixes (Tom)
+Multibytes fixes (Tom)
+Unicode fixes (Tatsuo)
+Optimizer improvements (Tom)
+Fix for whole rows in functions (Tom)
+Fix for pg_ctl and option strings with spaces (Peter E)
+ODBC fixes (Hiroshi)
+EXTRACT can now take string argument (Thomas)
+Python fixes (Darcy)
+    
+   
+  
+
+
+  Release 7.1
+
+  
+  Release date
+  2001-04-13
+  
+
+  
+       This release focuses on removing limitations that have existed in the
+       PostgreSQL code for many years.
+  
+
+  
+   Major changes in this release:
+  
+
+  
+   
+    
+      Write-ahead Log (WAL)
+    
+    
+     
+To maintain database consistency in case of an operating system crash,
+previous releases of PostgreSQL have forced
+all data modifications to disk before each transaction commit.  With
+WAL, only one log file must be flushed to disk, greatly improving
+performance.  If you have been using -F in previous releases to
+disable disk flushes, you might want to consider discontinuing its use.
+     
+    
+   
+
+   
+    
+      TOAST
+    
+    
+     
+      TOAST - Previous releases had a compiled-in row length limit,
+typically 8k - 32k. This limit made storage of long text fields
+difficult.  With TOAST, long rows of any length can be stored with good
+performance.
+     
+    
+   
+
+   
+    
+      Outer Joins
+    
+    
+     
+We now support outer joins.  The UNION/NOT IN
+workaround for outer joins is no longer required.  We use the SQL92
+outer join syntax.
+     
+    
+   
+
+   
+    
+      Function Manager
+    
+    
+     
+The previous C function manager did not
+handle null values properly, nor did it support 64-bit CPU's (Alpha).  The new
+function manager does.  You can continue using your old custom
+functions, but you might want to rewrite them in the future to use the new
+function manager call interface.
+     
+    
+   
+
+   
+    
+      Complex Queries
+    
+    
+     
+A large number of complex queries that were
+unsupported in previous releases now work.  Many combinations of views,
+aggregates, UNION, LIMIT, cursors, subqueries, and inherited tables
+now work properly. Inherited tables are now accessed by default.
+Subqueries in FROM are now supported.
+     
+    
+   
+
+  
+
+  
+   Migration to Version 7.1
+
+   
+       A dump/restore using pg_dump is required for those wishing to migrate
+       data from any previous release.
+   
+  
+
+  
+   Changes
+
+   
+    
+Bug Fixes
+---------
+Many multibyte/Unicode/locale fixes (Tatsuo and others)
+More reliable ALTER TABLE RENAME (Tom)
+Kerberos V fixes (David Wragg)
+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)
+Prevent query expressions from leaking memory (Tom)
+Allow UPDATE of arrays elements (Tom)
+Wake up lock waiters during cancel (Hiroshi)
+Fix rare cursor crash when using hash join (Tom)
+Fix for DROP TABLE/INDEX in rolled-back transaction (Hiroshi)
+Fix psql crash from \l+ if MULTIBYTE enabled (Peter E)
+Fix truncation of rule names during CREATE VIEW (Ross Reedstrom)
+Fix PL/perl (Alex Kapranoff)
+Disallow LOCK on views (Mark Hollomon)
+Disallow INSERT/UPDATE/DELETE on views (Mark Hollomon)
+Disallow DROP RULE, CREATE INDEX, TRUNCATE on views (Mark Hollomon)
+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)
+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)
+Modify pg_dump to better handle user-defined items in template1 (Philip)
+Allow LIMIT in VIEW (Tom)
+Require cursor FETCH to honor LIMIT (Tom)
+Allow PRIMARY/FOREIGN Key definitions on inherited columns (Stephan)
+Allow ORDER BY, LIMIT in subqueries (Tom)
+Allow UNION in CREATE RULE (Tom)
+Make ALTER/DROP TABLE rollback-able (Vadim, Tom)
+Store initdb collation in pg_control so collation cannot be changed (Tom)
+Fix INSERT...SELECT with rules (Tom)
+Fix FOR UPDATE inside views and subselects (Tom)
+Fix OVERLAPS operators conform to SQL92 spec regarding NULLs (Tom)
+Fix lpad() and rpad() to handle length less than input string (Tom)
+Fix use of NOTIFY in some rules (Tom)
+Overhaul btree code (Tom)
+Fix NOT NULL use in Pl/pgSQL variables (Tom)
+Overhaul GIST code (Oleg)
+Fix CLUSTER to preserve constraints and column default (Tom)
+Improved deadlock detection handling (Tom)
+Allow multiple SERIAL columns in a table (Tom)
+Prevent occasional index corruption (Vadim)
+
+Enhancements
+------------
+Add OUTER JOINs (Tom)
+Function manager overhaul (Tom)
+Allow ALTER TABLE RENAME on indexes (Tom)
+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)
+Grand Unified Configuration scheme/GUC.  Many options can now be set in
+   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)
+ODBC cleanups/improvements (Nick Gorham, Stephan Szabo, Zoltan Kovacs,
+   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)
+Overhaul pg_dump (Philip Warner)
+Allow pg_hba.conf secondary password file to specify only username (Peter E)
+Allow TEMPORARY or TEMP key word when creating temporary tables (Bruce)
+New memory leak checker (Karel)
+New SET SESSION CHARACTERISTICS (Thomas)
+Allow nested block comments (Thomas)
+Add WITHOUT TIME ZONE type qualifier (Thomas)
+New ALTER TABLE ADD CONSTRAINT (Stephan)
+Use NUMERIC accumulators for INTEGER aggregates (Tom)
+Overhaul aggregate code (Tom)
+New VARIANCE and STDDEV() aggregates
+Improve dependency ordering of pg_dump (Philip)
+New pg_restore command (Philip)
+New pg_dump tar output option (Philip)
+New pg_dump of large objects  (Philip)
+New ESCAPE option to LIKE (Thomas)
+New case-insensitive LIKE - ILIKE (Thomas)
+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)
+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)
+Allow subselects in FROM, i.e. FROM (SELECT ...) [AS] alias (Tom)
+Update PyGreSQL to version 3.1 (D'Arcy)
+Store tables as files named by OID (Vadim)
+New SQL function setval(seq,val,bool) for use in pg_dump (Philip)
+Require DROP VIEW to remove views, no DROP TABLE (Mark)
+Allow DROP VIEW view1, view2 (Mark)
+Allow multiple objects in DROP INDEX, DROP RULE, and DROP TYPE (Tom)
+Allow automatic conversion to/from Unicode (Tatsuo, Eiji)
+New /contrib/pgcrypto hashing functions (Marko Kreen)
+New pg_dumpall --globals-only option (Peter E)
+New CHECKPOINT command for WAL which creates new WAL log file (Vadim)
+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)
+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)
+New file format for COPY BINARY (Tom)
+New /contrib/oid2name to map numeric files to table names (B Palmer)
+New "idle in transaction" ps status message (Marc)
+Update to pgaccess 0.98.7 (Constantin Teodorescu)
+pg_ctl now defaults to -w (wait) on shutdown, new -l (log) option
+Add rudimentary dependency checking to pg_dump (Philip)
+
+Types
+-----
+Fix INET/CIDR type ordering and add new functions (Tom)
+Make OID behave as an unsigned type (Tom)
+Allow BIGINT as synonym for INT8 (Peter E)
+New int2 and int8 comparison operators (Tom)
+New BIT and BIT VARYING types (Adriaan Joubert, Tom, Peter E)
+CHAR() no longer faster than VARCHAR() because of TOAST (Tom)
+New GIST seg/cube examples (Gene Selkov)
+Improved round(numeric) handling (Tom)
+Fix CIDR output formatting (Tom)
+New CIDR abbrev() function (Tom)
+
+Performance
+-----------
+Write-Ahead Log (WAL) to provide crash recovery with less performance
+   overhead (Vadim)
+ANALYZE stage of VACUUM no longer exclusively locks table (Bruce)
+Reduced file seeks (Denis Perchine)
+Improve BTREE code for duplicate keys (Tom)
+Store all large objects in a single table (Denis Perchine, Tom)
+Improve memory allocation performance (Karel, Tom)
+
+Source Code
+-----------
+New function manager call conventions (Tom)
+SGI portability fixes (David Kaelbling)
+New configure --enable-syslog option (Peter E)
+New BSDI README (Bruce)
+configure script moved to top level, not /src (Peter E)
+Makefile/configuration/compilation overhaul (Peter E)
+New configure --with-python option (Peter E)
+Solaris cleanups (Peter E)
+Overhaul /contrib Makefiles (Karel)
+New OpenSSL configuration option (Magnus, Peter E)
+AIX fixes (Andreas)
+QNX fixes (Maurizio)
+New heap_open(), heap_openr() API (Tom)
+Remove colon and semi-colon operators (Thomas)
+New pg_class.relkind value for views (Mark Hollomon)
+Rename ichar() to chr() (Karel)
+New documentation for btrim(), ascii(), chr(), repeat() (Karel)
+Fixes for NT/Cygwin (Pete Forman)
+AIX port fixes (Andreas)
+New BeOS port (David Reid, Cyril Velter)
+Add proofreader's changes to docs (Addison-Wesley, Bruce)
+New Alpha spinlock code (Adriaan Joubert, Compaq)
+UnixWare port overhaul (Peter E)
+New Darwin/MacOS X port (Peter Bierman, Bruce Hartzler)
+New FreeBSD Alpha port (Alfred)
+Overhaul shared memory segments (Tom)
+Add IBM S/390 support (Neale Ferguson)
+Moved macmanuf to /contrib (Larry Rosenman)
+Syslog improvements (Larry Rosenman)
+New template0 database that contains no user additions (Tom)
+New /contrib/cube and /contrib/seg GIST sample code (Gene Selkov)
+Allow NetBSD's libedit instead of readline (Peter)
+Improved assembly language source code format (Bruce)
+New contrib/pg_logger
+New --template option to createdb
+New contrib/pg_control utility (Oliver)
+New FreeBSD tools ipc_check, start-scripts/freebsd
+    
+   
+  
+
+
+  Release 7.0.3
+
+  
+  Release date
+  2000-11-11
+  
+
+  
+   This has a variety of fixes from 7.0.2.
+  
+
+
+  
+   Migration to Version 7.0.3
+
+   
+    A dump/restore is not required for those running
+    7.0.*.
+   
+  
+
+  
+   Changes
+
+   
+    
+Jdbc fixes (Peter)
+Large object fix (Tom)
+Fix lean in COPY WITH OIDS leak (Tom)
+Fix backwards-index-scan (Tom)
+Fix SELECT ... FOR UPDATE so it checks for duplicate keys (Hiroshi)
+Add --enable-syslog to configure (Marc)
+Fix abort transaction at backend exit in rare cases (Tom)
+Fix for psql \l+ when multibyte enabled (Tatsuo)
+Allow PL/pgSQL to accept non ascii identifiers (Tatsuo)
+Make vacuum always flush buffers (Tom)
+Fix to allow cancel while waiting for a lock (Hiroshi)
+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)
+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)
+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)
+Fix to make pg_dump dump 'iscachable' flag for functions (Tom)
+Fix for subselect in targetlist of Append node (Tom)
+Fix for mergejoin plans (Tom)
+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)
+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)
+Fix for crash of backend, on abort (Tom)
+    
+   
+  
+
+
+  Release 7.0.2
+
+  
+  Release date
+  2000-06-05
+  
+
+  
+   This is a repackaging of 7.0.1 with added documentation.
+  
+
+
+  
+   Migration to Version 7.0.2
+
+   
+    A dump/restore is not required for those running
+    7.*.
+   
+  
+
+  
+   Changes
+
+   
+    
+Added documentation to tarball.
+    
+   
+  
+
+
+  Release 7.0.1
+
+  
+  Release date
+  2000-06-01
+  
+
+  
+   This is a cleanup release for 7.0.
+  
+
+  
+   Migration to Version 7.0.1
+
+   
+    A dump/restore is not required for those running
+    7.0.
+   
+  
+
+  
+   Changes
+
+   
+    
+Fix many CLUSTER failures (Tom)
+Allow ALTER TABLE RENAME works on indexes (Tom)
+Fix plpgsql to handle datetime->timestamp and timespan->interval (Bruce)
+New configure --with-setproctitle switch to use setproctitle() (Marc, Bruce)
+Fix the off by one errors in ResultSet from 6.5.3, and more.
+jdbc ResultSet fixes (Joseph Shraibman)
+optimizer tunings (Tom)
+Fix create user for pgaccess
+Fix for UNLISTEN failure
+IRIX fixes (David Kaelbling)
+QNX fixes (Andreas Kardos)
+Reduce COPY IN lock level (Tom)
+Change libpqeasy to use PQconnectdb() style parameters (Bruce)
+Fix pg_dump to handle OID indexes (Tom)
+Fix small memory leak (Tom)
+Solaris fix for createdb/dropdb (Tatsuo)
+Fix for non-blocking connections (Alfred Perlstein)
+Fix improper recovery after RENAME TABLE failures (Tom)
+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)
+ecpg changes (Michael)
+    
+   
+  
+
+  Release 7.0
+
+  
+  Release date
+  2000-05-08
+  
+
+  
+   This release contains improvements in many areas, demonstrating
+   the continued growth of PostgreSQL.
+   There are more improvements and fixes in 7.0 than in any previous
+   release. The developers have confidence that this is the best
+   release yet; we do our best to put out only solid releases, and
+   this one is no exception.
+  
+
+  
+   Major changes in this release:
+  
+
+  
+   
+    
+     Foreign Keys
+    
+    
+     
+      Foreign keys are now implemented, with the exception of PARTIAL MATCH
+      foreign keys. Many users have been asking for this feature, and we are
+      pleased to offer it.
+     
+    
+   
+
+   
+    
+     Optimizer Overhaul
+    
+    
+     
+      Continuing on work started a year ago, the optimizer has been
+      improved, allowing better query plan selection and faster performance
+      with less memory usage.
+     
+    
+   
+
+   
+    
+     Updated psql
+    
+    
+     
+      psql, our interactive terminal monitor, has been
+      updated with a variety of new features. See the psql manual page for details.
+     
+    
+   
+
+   
+    
+     Join Syntax
+    
+    
+     
+      SQL92 join syntax is now supported, though only as
+      INNER JOIN for this release. JOIN,
+      NATURAL JOIN, JOIN/USING,
+      and JOIN/ON are available, as are
+      column correlation names.
+     
+    
+
+   
+  
+
+  
+   Migration to Version 7.0
+
+   
+    A dump/restore using pg_dump
+    is required for those wishing to migrate data from any
+    previous release of PostgreSQL.
+    For those upgrading from 6.5.*, you can instead use
+    pg_upgrade to upgrade to this
+    release; however, a full dump/reload installation is always the
+    most robust method for upgrades.
+   
+
+   
+    Interface and compatibility issues to consider for the new
+    release include:
+   
+
+   
+    
+     
+      The date/time types datetime and
+      timespan have been superseded by the
+      SQL92-defined types timestamp and
+      interval. Although there has been some effort to
+      ease the transition by allowing
+      PostgreSQL to recognize
+      the deprecated type names and translate them to the new type
+      names, this mechanism cannot be completely transparent to
+      your existing application.
+     
+    
+
+    
+     
+      The optimizer has been substantially improved in the area of
+      query cost estimation. In some cases, this will result in
+      decreased query times as the optimizer makes a better choice
+      for the preferred plan. However, in a small number of cases,
+      usually involving pathological distributions of data, your
+      query times might go up. If you are dealing with large amounts
+      of data, you might want to check your queries to verify
+      performance.
+     
+    
+
+    
+     
+      The JDBC and ODBC
+      interfaces have been upgraded and extended.
+     
+    
+
+    
+     
+      The string function CHAR_LENGTH is now a
+      native function. Previous versions translated this into a call
+      to LENGTH, which could result in
+      ambiguity with other types implementing
+      LENGTH such as the geometric types.
+     
+    
+   
+  
+
+  
+   Changes
+
+   
+    
+Bug Fixes
+---------
+Prevent function calls exceeding maximum number of arguments (Tom)
+Improve CASE construct (Tom)
+Fix SELECT coalesce(f1,0) FROM int4_tbl GROUP BY f1 (Tom)
+Fix SELECT sentence.words[0] FROM sentence GROUP BY sentence.words[0] (Tom)
+Fix GROUP BY scan bug (Tom)
+Improvements in SQL grammar processing (Tom)
+Fix for views involved in INSERT ... SELECT ... (Tom)
+Fix for SELECT a/2, a/2 FROM test_missing_target GROUP BY a/2 (Tom)
+Fix for subselects in INSERT ... SELECT (Tom)
+Prevent INSERT ... SELECT ... ORDER BY (Tom)
+Fixes for relations greater than 2GB, including vacuum
+Improve propagating system table changes to other backends (Tom)
+Improve propagating user table changes to other backends (Tom)
+Fix handling of temp tables in complex situations (Bruce, Tom)
+Allow table locking at table open, improving concurrent reliability (Tom)
+Properly quote sequence names in pg_dump (Ross J. Reedstrom)
+Prevent DROP DATABASE while others accessing
+Prevent any rows from being returned by GROUP BY if no rows processed (Tom)
+Fix SELECT COUNT(1) FROM table WHERE ...' if no rows matching WHERE (Tom)
+Fix pg_upgrade so it works for MVCC (Tom)
+Fix for SELECT ... WHERE x IN (SELECT ... HAVING SUM(x) > 1) (Tom)
+Fix for "f1 datetime DEFAULT 'now'"  (Tom)
+Fix problems with CURRENT_DATE used in DEFAULT (Tom)
+Allow comment-only lines, and ;;; lines too. (Tom)
+Improve recovery after failed disk writes, disk full (Hiroshi)
+Fix cases where table is mentioned in FROM but not joined (Tom)
+Allow HAVING clause without aggregate functions (Tom)
+Fix for "--" comment and no trailing newline, as seen in perl interface
+Improve pg_dump failure error reports (Bruce)
+Allow sorts and hashes to exceed 2GB file sizes (Tom)
+Fix for pg_dump dumping of inherited rules (Tom)
+Fix for NULL handling comparisons (Tom)
+Fix inconsistent state caused by failed CREATE/DROP commands (Hiroshi)
+Fix for dbname with dash
+Prevent DROP INDEX from interfering with other backends (Tom)
+Fix file descriptor leak in verify_password()
+Fix for "Unable to identify an operator =$" problem
+Fix ODBC so no segfault if CommLog and Debug enabled (Dirk Niggemann)
+Fix for recursive exit call (Massimo)
+Fix for extra-long timezones (Jeroen van Vianen)
+Make pg_dump preserve primary key information (Peter E)
+Prevent databases with single quotes (Peter E)
+Prevent DROP DATABASE inside  transaction (Peter E)
+ecpg memory leak fixes (Stephen Birch)
+Fix for SELECT null::text, SELECT int4fac(null) and SELECT 2 + (null) (Tom)
+Y2K timestamp fix (Massimo)
+Fix for VACUUM 'HEAP_MOVED_IN was not expected' errors (Tom)
+Fix for views with tables/columns containing spaces  (Tom)
+Prevent privileges on indexes (Peter E)
+Fix for spinlock stuck problem when error is generated (Hiroshi)
+Fix ipcclean on Linux
+Fix handling of NULL constraint conditions (Tom)
+Fix memory leak in odbc driver (Nick Gorham)
+Fix for privilege check on UNION tables (Tom)
+Fix to allow SELECT 'a' LIKE 'a' (Tom)
+Fix for SELECT 1 + NULL (Tom)
+Fixes to CHAR
+Fix log() on numeric type (Tom)
+Deprecate ':' and ';' operators
+Allow vacuum of temporary tables
+Disallow inherited columns with the same name as new columns
+Recover or force failure when disk space is exhausted (Hiroshi)
+Fix INSERT INTO ... SELECT with AS columns matching result columns
+Fix INSERT ... SELECT ... GROUP BY groups by target columns not source columns (Tom)
+Fix CREATE TABLE test (a char(5) DEFAULT text '', b int4) with INSERT (Tom)
+Fix UNION with LIMIT
+Fix CREATE TABLE x AS SELECT 1 UNION SELECT 2
+Fix CREATE TABLE test(col char(2) DEFAULT user)
+Fix mismatched types in CREATE TABLE ... DEFAULT
+Fix SELECT * FROM pg_class where oid in (0,-1)
+Fix SELECT COUNT('asdf') FROM pg_class WHERE oid=12
+Prevent user who can create databases can modifying pg_database table (Peter E)
+Fix btree to give a useful elog when key > 1/2 (page - overhead) (Tom)
+Fix INSERT of 0.0 into DECIMAL(4,4) field (Tom)
+
+Enhancements
+------------
+New CLI interface include file sqlcli.h, based on SQL3/SQL98
+Remove all limits on query length, row length limit still exists (Tom)
+Update jdbc protocol to 2.0 (Jens Glaser [email protected])
+Add TRUNCATE command to quickly truncate relation (Mike Mascari)
+Fix to give super user and createdb user proper update catalog rights (Peter E)
+Allow ecpg bool variables to have NULL values (Christof)
+Issue ecpg error if NULL value for variable with no NULL indicator (Christof)
+Allow ^C to cancel COPY command (Massimo)
+Add SET FSYNC and SHOW PG_OPTIONS commands(Massimo)
+Function name overloading for dynamically-loaded C functions (Frankpitt)
+Add CmdTuples() to libpq++(Vince)
+New CREATE CONSTRAINT TRIGGER and SET CONSTRAINTS commands(Jan)
+Allow CREATE FUNCTION/WITH clause to be used for all language types
+configure --enable-debug adds -g (Peter E)
+configure --disable-debug removes -g (Peter E)
+Allow more complex default expressions (Tom)
+First real FOREIGN KEY constraint trigger functionality (Jan)
+Add FOREIGN KEY ... MATCH FULL ... ON DELETE CASCADE (Jan)
+Add FOREIGN KEY ... MATCH <unspecified> referential actions (Don Baccus)
+Allow WHERE restriction on ctid (physical heap location) (Hiroshi)
+Move pginterface from contrib to interface directory, rename to pgeasy (Bruce)
+Change pgeasy connectdb() parameter ordering (Bruce)
+Require SELECT DISTINCT target list to have all ORDER BY columns (Tom)
+Add Oracle's COMMENT ON command (Mike Mascari [email protected])
+libpq's PQsetNoticeProcessor function now returns previous hook(Peter E)
+Prevent PQsetNoticeProcessor from being set to NULL (Peter E)
+Make USING in COPY optional (Bruce)
+Allow subselects in the target list (Tom)
+Allow subselects on the left side of comparison operators (Tom)
+New parallel regression test (Jan)
+Change backend-side COPY to write files with permissions 644 not 666 (Tom)
+Force permissions on PGDATA directory to be secure, even if it exists (Tom)
+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)
+New libpq PQsetenv() function (Ewan Mellor)
+create/alter user extension (Peter E)
+New postmaster.pid and postmaster.opts under $PGDATA (Tatsuo)
+New scripts for create/drop user/db (Peter E)
+Major psql overhaul (Peter E)
+Add const to libpq interface (Peter E)
+New libpq function PQoidValue (Peter E)
+Show specific non-aggregate causing problem with GROUP BY (Tom)
+Make changes to pg_shadow recreate pg_pwd file (Peter E)
+Add aggregate(DISTINCT ...) (Tom)
+Allow flag to control COPY input/output of NULLs (Peter E)
+Make postgres user have a password by default (Peter E)
+Add CREATE/ALTER/DROP GROUP (Peter E)
+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
+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
+Increase maximum number of index keys to 16 (Bruce)
+Increase maximum number of function arguments to 16 (Bruce)
+Allow configuration of maximum number of index keys and arguments (Bruce)
+Allow unprivileged users to change their passwords (Peter E)
+Password authentication enabled; required for new users (Peter E)
+Disallow dropping a user who owns a database (Peter E)
+Change initdb option --with-mb to --enable-multibyte
+Add option for initdb to prompts for superuser password (Peter E)
+Allow complex type casts like col::numeric(9,2) and col::int2::float8 (Tom)
+Updated user interfaces on initdb, initlocation, pg_dump, ipcclean (Peter E)
+New pg_char_to_encoding() and pg_encoding_to_char() functions (Tatsuo)
+libpq non-blocking mode (Alfred Perlstein)
+Improve conversion of types in casts that don't specify a length
+New plperl internal programming language (Mark Hollomon)
+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 <[email protected]>)
+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
+Improve EXPLAIN results for Append, Group, Agg, Unique (Tom)
+Add ALTER TABLE ... ADD FOREIGN KEY (Stephan Szabo)
+Allow SELECT .. FOR UPDATE in PL/pgSQL (Hiroshi)
+Enable backward sequential scan even after reaching EOF (Hiroshi)
+Add btree indexing of boolean values, >= and <= (Don Baccus)
+Print current line number when COPY FROM fails (Massimo)
+Recognize POSIX time zone e.g. "PST+8" and "GMT-8" (Thomas)
+Add DEC as synonym for DECIMAL (Thomas)
+Add SESSION_USER as SQL92 key word, same as CURRENT_USER (Thomas)
+Implement SQL92 column aliases (aka correlation names) (Thomas)
+Implement SQL92 join syntax (Thomas)
+Make INTERVAL reserved word allowed as a column identifier (Thomas)
+Implement REINDEX command (Hiroshi)
+Accept ALL in aggregate function SUM(ALL col) (Tom)
+Prevent GROUP BY from using column aliases (Tom)
+New psql \encoding option (Tatsuo)
+Allow PQrequestCancel() to terminate when in waiting-for-lock state (Hiroshi)
+Allow negation of a negative number in all cases
+Add ecpg descriptors (Christof, Michael)
+Allow CREATE VIEW v AS SELECT f1::char(8) FROM tbl
+Allow casts with length, like foo::char(8)
+New libpq functions PQsetClientEncoding(), PQclientEncoding() (Tatsuo)
+Add support for SJIS user defined characters (Tatsuo)
+Larger views/rules supported
+Make libpq's PQconndefaults() thread-safe (Tom)
+Disable // as comment to be ANSI conforming, should use -- (Tom)
+Allow column aliases on views CREATE VIEW name (collist)
+Fixes for views with subqueries (Tom)
+Allow UPDATE table SET fld = (SELECT ...) (Tom)
+SET command options no longer require quotes
+Update pgaccess to 0.98.6
+New SET SEED command
+New pg_options.sample file
+New SET FSYNC command (Massimo)
+Allow pg_descriptions when creating tables
+Allow pg_descriptions when creating types, columns, and functions
+Allow psql \copy to allow delimiters (Peter E)
+Allow psql to print nulls as distinct from "" [null] (Peter E)
+
+Types
+-----
+Many array fixes (Tom)
+Allow bare column names to be subscripted as arrays (Tom)
+Improve type casting of int and float constants (Tom)
+Cleanups for int8 inputs, range checking, and type conversion (Tom)
+Fix for SELECT timespan('21:11:26'::time) (Tom)
+netmask('x.x.x.x/0') is 255.255.255.255 instead of 0.0.0.0 (Oleg Sharoiko)
+Add btree index on NUMERIC (Jan)
+Perl fix for large objects containing NUL characters (Douglas Thomson)
+ODBC fix for large objects (free)
+Fix indexing of cidr data type
+Fix for Ethernet MAC addresses (macaddr type) comparisons
+Fix for date/time types when overflows happened in computations (Tom)
+Allow array on int8 (Peter E)
+Fix for rounding/overflow of NUMERIC type, like NUMERIC(4,4) (Tom)
+Allow NUMERIC arrays
+Fix bugs in NUMERIC ceil() and floor() functions (Tom)
+Make char_length()/octet_length including trailing blanks (Tom)
+Made abstime/reltime use int4 instead of time_t (Peter E)
+New lztext data type for compressed text fields
+Revise code to handle coercion of int and float constants (Tom)
+Start at new code to implement a BIT and BIT VARYING type (Adriaan Joubert)
+NUMERIC now accepts scientific notation (Tom)
+NUMERIC to int4 rounds (Tom)
+Convert float4/8 to NUMERIC properly (Tom)
+Allow type conversion with NUMERIC (Thomas)
+Make ISO date style (2000-02-16 09:33) the default (Thomas)
+Add NATIONAL CHAR [ VARYING ] (Thomas)
+Allow NUMERIC round and trunc to accept negative scales (Tom)
+New TIME WITH TIME ZONE type (Thomas)
+Add MAX()/MIN() on time type (Thomas)
+Add abs(), mod(), fac() for int8 (Thomas)
+Rename functions to round(), sqrt(), cbrt(), pow() for float8 (Thomas)
+Add transcendental math functions (e.g. sin(), acos()) for float8 (Thomas)
+Add exp() and ln() for NUMERIC type
+Rename NUMERIC power() to pow() (Thomas)
+Improved TRANSLATE() function (Edwin Ramirez, Tom)
+Allow X=-Y operators  (Tom)
+Allow SELECT float8(COUNT(*))/(SELECT COUNT(*) FROM t) FROM t GROUP BY f1; (Tom)
+Allow LOCALE to use indexes in regular expression searches (Tom)
+Allow creation of functional indexes to use default types
+
+Performance
+-----------
+Prevent exponential space consumption with many AND's and OR's (Tom)
+Collect attribute selectivity values for system columns (Tom)
+Reduce memory usage of aggregates (Tom)
+Fix for LIKE optimization to use indexes with multibyte encodings (Tom)
+Fix r-tree index optimizer selectivity (Thomas)
+Improve optimizer selectivity computations and functions (Tom)
+Optimize btree searching for cases where many equal keys exist (Tom)
+Enable fast LIKE index processing only if index present (Tom)
+Re-use free space on index pages with duplicates (Tom)
+Improve hash join processing (Tom)
+Prevent descending sort if result is already sorted(Hiroshi)
+Allow commuting of index scan query qualifications (Tom)
+Prefer index scans in cases where ORDER BY/GROUP BY is required (Tom)
+Allocate large memory requests in fix-sized chunks for performance (Tom)
+Fix vacuum's performance by reducing memory allocation requests (Tom)
+Implement constant-expression simplification (Bernard Frankpitt, Tom)
+Use secondary columns to be used to determine start of index scan (Hiroshi)
+Prevent quadruple use of disk space when doing internal sorting (Tom)
+Faster sorting by calling fewer functions (Tom)
+Create system indexes to match all system caches (Bruce, Hiroshi)
+Make system caches use system indexes (Bruce)
+Make all system indexes unique (Bruce)
+Improve pg_statistics management for VACUUM speed improvement (Tom)
+Flush backend cache less frequently (Tom, Hiroshi)
+COPY now reuses previous memory allocation, improving performance (Tom)
+Improve optimization cost estimation (Tom)
+Improve optimizer estimate of range queries x > lowbound AND x < highbound (Tom)
+Use DNF instead of CNF where appropriate (Tom, Taral)
+Further cleanup for OR-of-AND WHERE-clauses (Tom)
+Make use of index in OR clauses (x = 1 AND y = 2) OR (x = 2 AND y = 4) (Tom)
+Smarter optimizer computations for random index page access (Tom)
+New SET variable to control optimizer costs (Tom)
+Optimizer queries based on LIMIT, OFFSET, and EXISTS qualifications (Tom)
+Reduce optimizer internal housekeeping of join paths for speedup (Tom)
+Major subquery speedup (Tom)
+Fewer fsync writes when fsync is not disabled (Tom)
+Improved LIKE optimizer estimates (Tom)
+Prevent fsync in SELECT-only queries (Vadim)
+Make index creation use psort code, because it is now faster (Tom)
+Allow creation of sort temp tables > 1 Gig
+
+Source Tree Changes
+-------------------
+Fix for linux PPC compile
+New generic expression-tree-walker subroutine (Tom)
+Change form() to varargform() to prevent portability problems
+Improved range checking for large integers on Alphas
+Clean up #include in /include directory (Bruce)
+Add scripts for checking includes (Bruce)
+Remove un-needed #include's from *.c files (Bruce)
+Change #include's to use <> and "" as appropriate (Bruce)
+Enable Windows compilation of libpq
+Alpha spinlock fix from Uncle George [email protected]
+Overhaul of optimizer data structures (Tom)
+Fix to cygipc library (Yutaka Tanida)
+Allow pgsql to work on newer Cygwin snapshots (Dan)
+New catalog version number (Tom)
+Add Linux ARM
+Rename heap_replace to heap_update
+Update for QNX (Dr. Andreas Kardos)
+New platform-specific regression handling (Tom)
+Rename oid8 -> oidvector and int28 -> int2vector (Bruce)
+Included all yacc and lex files into the distribution (Peter E.)
+Remove lextest, no longer needed (Peter E)
+Fix for libpq and psql on Windows (Magnus)
+Internally change datetime and timespan into timestamp and interval (Thomas)
+Fix for plpgsql on BSD/OS
+Add SQL_ASCII test case to the regression test (Tatsuo)
+configure --with-mb now deprecated (Tatsuo)
+NT fixes
+NetBSD fixes (Johnny C. Lam [email protected])
+Fixes for Alpha compiles
+New multibyte encodings
+    
+   
+  
+
+  Release 6.5.3
+
+  
+  Release date
+  1999-10-13
+  
+
+  
+   This is basically a cleanup release for 6.5.2.  We have added a new
+   PgAccess that was missing in 6.5.2, and installed an NT-specific fix.
+  
+
+
+  
+   Migration to Version 6.5.3
+
+   
+    A dump/restore is not required for those running
+    6.5.*.
+   
+  
+  
+   Changes
+
+   
+    
+Updated version of pgaccess 0.98
+NT-specific patch
+Fix dumping rules on inherited tables
+    
+   
+  
+
+
+  Release 6.5.2
+
+  
+  Release date
+  1999-09-15
+  
+
+  
+   This is basically a cleanup release for 6.5.1.  We have fixed a variety of
+   problems reported by 6.5.1 users.
+  
+
+
+  
+   Migration to Version 6.5.2
+
+   
+    A dump/restore is not required for those running
+    6.5.*.
+   
+  
+
+  
+   Changes
+
+   
+    
+subselect+CASE fixes(Tom)
+Add SHLIB_LINK setting for solaris_i386 and solaris_sparc ports(Daren Sefcik)
+Fixes for CASE in WHERE join clauses(Tom)
+Fix BTScan abort(Tom)
+Repair the check for redundant UNIQUE and PRIMARY KEY indexes(Thomas)
+Improve it so that it checks for multicolumn constraints(Thomas)
+Fix for Windows making problem with MB enabled(Hiroki Kataoka)
+Allow BSD yacc and bison to compile pl code(Bruce)
+Fix SET NAMES working
+int8 fixes(Thomas)
+Fix vacuum's memory consumption(Hiroshi,Tatsuo)
+Reduce the total memory consumption of vacuum(Tom)
+Fix for timestamp(datetime)
+Rule deparsing bugfixes(Tom)
+Fix quoting problems in mkMakefile.tcldefs.sh.in and mkMakefile.tkdefs.sh.in(Tom)
+This is to re-use space on index pages freed by vacuum(Vadim)
+document -x for pg_dump(Bruce)
+Fix for unary operators in rule deparser(Tom)
+Comment out FileUnlink of excess segments during mdtruncate()(Tom)
+IRIX linking fix from Yu Cao >[email protected]<
+Repair logic error in LIKE: should not return LIKE_ABORT
+  when reach end of pattern before end of text(Tom)
+Repair incorrect cleanup of heap memory allocation during transaction abort(Tom)
+Updated version of pgaccess 0.98
+    
+   
+  
+
+  Release 6.5.1
+
+  
+  Release date
+  1999-07-15
+  
+
+  
+   This is basically a cleanup release for 6.5.  We have fixed a variety of
+   problems reported by 6.5 users.
+  
+
+  
+   Migration to Version 6.5.1
+
+   
+    A dump/restore is not required for those running
+    6.5.
+   
+  
+
+  
+   Changes
+
+   
+    
+Add NT README file
+Portability fixes for linux_ppc, IRIX, linux_alpha, OpenBSD, alpha
+Remove QUERY_LIMIT, use SELECT...LIMIT
+Fix for EXPLAIN on inheritance(Tom)
+Patch to allow vacuum on multisegment tables(Hiroshi)
+R-Tree optimizer selectivity fix(Tom)
+ACL file descriptor leak fix(Atsushi Ogawa)
+New expression subtree code(Tom)
+Avoid disk writes for read-only transactions(Vadim)
+Fix for removal of temp tables if last transaction was aborted(Bruce)
+Fix to prevent too large row from being created(Bruce)
+plpgsql fixes
+Allow port numbers 32k - 64k(Bruce)
+Add ^ precedence(Bruce)
+Rename sort files called pg_temp to pg_sorttemp(Bruce)
+Fix for microseconds in time values(Tom)
+Tutorial source cleanup
+New linux_m68k port
+Fix for sorting of NULL's in some cases(Tom)
+Shared library dependencies fixed (Tom)
+Fixed glitches affecting GROUP BY in subselects(Tom)
+Fix some compiler warnings (Tomoaki Nishiyama)
+Add Win1250 (Czech) support (Pavel Behal)
+    
+   
+  
+
+  Release 6.5
+
+  
+  Release date
+  1999-06-09
+  
+
+  
+   This release marks a major step in the development team's mastery of the source
+   code we inherited from Berkeley.  You will see we are now easily adding
+   major features, thanks to the increasing size and experience of our
+   world-wide development team.
+  
+
+  
+   Here is a brief summary of the more notable changes:
+
+   
+    
+     
+      Multiversion concurrency control(MVCC)
+     
+     
+      
+       This removes our old table-level locking, and replaces it with
+       a locking system that is superior to most commercial database
+       systems.  In a traditional system, each row that is modified
+       is locked until committed, preventing reads by other users.
+       MVCC uses the natural multiversion nature of
+       PostgreSQL to allow readers to
+       continue reading consistent data during writer activity.
+       Writers continue to use the compact pg_log transaction system.
+       This is all performed without having to allocate a lock for
+       every row like traditional database systems.  So, basically,
+       we no longer are restricted by simple table-level locking; we
+       have something better than row-level locking.
+      
+     
+    
+
+    
+     
+      Hot backups from pg_dump
+     
+     
+      
+       pg_dump takes advantage of the new
+       MVCC features to give a consistent database dump/backup while
+       the database stays online and available for queries.
+      
+     
+    
+
+    
+     
+      Numeric data type
+     
+     
+      
+       We now have a true numeric data type, with
+       user-specified precision.
+      
+     
+    
+
+    
+     
+      Temporary tables
+     
+     
+      
+       Temporary tables are guaranteed to have unique names
+       within a database session, and are destroyed on session exit.
+      
+     
+    
+
+    
+     
+      New SQL features
+     
+     
+      
+       We now have CASE, INTERSECT, and EXCEPT statement
+       support.  We have new LIMIT/OFFSET, SET TRANSACTION ISOLATION LEVEL,
+       SELECT ... FOR UPDATE, and an improved LOCK TABLE command.
+      
+     
+    
+
+    
+     
+      Speedups
+     
+     
+      
+       We continue to speed up PostgreSQL,
+       thanks to the variety of talents within our team.  We have
+       sped up memory allocation, optimization, table joins, and row
+       transfer routines.
+      
+     
+    
+
+    
+     
+      Ports
+     
+     
+      
+       We continue to expand our port list, this time including
+       Windows NT/ix86 and NetBSD/arm32.
+      
+     
+    
+
+    
+     
+      Interfaces
+     
+     
+      
+       Most interfaces have new versions, and existing functionality
+       has been improved.
+      
+     
+    
+
+    
+     
+      Documentation
+     
+     
+      
+       New and updated material is present throughout the
+       documentation. New FAQs have been
+       contributed for SGI and AIX platforms.
+       The Tutorial has introductory information
+       on SQL from Stefan Simkovics.
+       For the User's Guide, there are
+       reference pages covering the postmaster and more utility
+       programs, and a new appendix
+       contains details on date/time behavior.
+       The Administrator's Guide has a new
+       chapter on troubleshooting from Tom Lane.
+       And the Programmer's Guide has a
+       description of query processing, also from Stefan, and details
+       on obtaining the PostgreSQL source
+       tree via anonymous CVS and
+       CVSup.
+      
+     
+    
+   
+  
+
+  
+   Migration to Version 6.5
+
+   
+    A dump/restore using pg_dump
+    is required for those wishing to migrate data from any
+    previous release of PostgreSQL.
+    pg_upgrade can not
+    be used to upgrade to this release because the on-disk structure
+    of the tables has changed compared to previous releases.
+   
+
+   
+    The new Multiversion Concurrency Control (MVCC) features can
+    give somewhat different behaviors in multiuser
+    environments. Read and understand the following section
+     to ensure that your existing applications will give you the
+     behavior you need.
+   
+
+   
+    Multiversion Concurrency Control
+
+    
+     Because readers in 6.5 don't lock data, regardless of transaction
+     isolation level, data read by one transaction can be overwritten by
+     another. In other words, if a row is returned by
+     SELECT it doesn't mean that this row really exists
+     at the time it is returned (i.e. sometime after the statement or
+     transaction began) nor that the row is protected from being deleted or
+     updated by concurrent transactions before the current transaction does
+     a commit or rollback.
+    
+
+    
+     To ensure the actual existence of a row and protect it against
+     concurrent updates one must use SELECT FOR UPDATE or
+     an appropriate LOCK TABLE statement. This should be
+     taken into account when porting applications from previous releases of
+     PostgreSQL and other environments.
+    
+
+    
+     Keep the above in mind if you are using
+     contrib/refint.* triggers for
+     referential integrity. Additional techniques are required now. One way is
+     to use LOCK parent_table IN SHARE ROW EXCLUSIVE MODE
+     command if a transaction is going to update/delete a primary key and
+     use LOCK parent_table IN SHARE MODE command if a
+     transaction is going to update/insert a foreign key.
+
+     
+      
+       Note that if you run a transaction in SERIALIZABLE mode then you must
+       execute the LOCK commands above before execution of any
+       DML statement
+       (SELECT/INSERT/DELETE/UPDATE/FETCH/COPY_TO) in the
+       transaction.
+      
+     
+    
+
+    
+     These inconveniences will disappear in the future
+     when the ability to read dirty
+     (uncommitted) data (regardless of isolation level) and true referential
+     integrity will be implemented.
+    
+   
+   
+
+  
+   Changes
+
+   
+    
+Bug Fixes
+---------
+Fix text<->float8 and text<->float4 conversion functions(Thomas)
+Fix for creating tables with mixed-case constraints(Billy)
+Change exp()/pow() behavior to generate error on underflow/overflow(Jan)
+Fix bug in pg_dump -z
+Memory overrun cleanups(Tatsuo)
+Fix for lo_import crash(Tatsuo)
+Adjust handling of data type names to suppress double quotes(Thomas)
+Use type coercion for matching columns and DEFAULT(Thomas)
+Fix deadlock so it only checks once after one second of sleep(Bruce)
+Fixes for aggregates and PL/pgsql(Hiroshi)
+Fix for subquery crash(Vadim)
+Fix for libpq function PQfnumber and case-insensitive names(Bahman Rafatjoo)
+Fix for large object write-in-middle, no extra block, memory consumption(Tatsuo)
+Fix for pg_dump -d or -D and  quote special characters in INSERT
+Repair serious problems with dynahash(Tom)
+Fix INET/CIDR portability problems
+Fix problem with selectivity error in ALTER TABLE ADD COLUMN(Bruce)
+Fix executor so mergejoin of different column types works(Tom)
+Fix for Alpha OR selectivity bug
+Fix OR index selectivity problem(Bruce)
+Fix so \d shows proper length for char()/varchar()(Ryan)
+Fix tutorial code(Clark)
+Improve destroyuser checking(Oliver)
+Fix for Kerberos(Rodney McDuff)
+Fix for dropping database while dirty buffers(Bruce)
+Fix so sequence nextval() can be case-sensitive(Bruce)
+Fix !!= operator
+Drop buffers before destroying database files(Bruce)
+Fix case where executor evaluates functions twice(Tatsuo)
+Allow sequence nextval actions to be case-sensitive(Bruce)
+Fix optimizer indexing not working for negative numbers(Bruce)
+Fix for memory leak in executor with fjIsNull
+Fix for aggregate memory leaks(Erik Riedel)
+Allow user name containing a dash to grant privileges
+Cleanup of NULL in inet types
+Clean up system table bugs(Tom)
+Fix problems of PAGER and \? command(Masaaki Sakaida)
+Reduce default multisegment file size limit to 1GB(Peter)
+Fix for dumping of CREATE OPERATOR(Tom)
+Fix for backward scanning of cursors(Hiroshi Inoue)
+Fix for COPY FROM STDIN when using \i(Tom)
+Fix for subselect is compared inside an expression(Jan)
+Fix handling of error reporting while returning rows(Tom)
+Fix problems with reference to array types(Tom,Jan)
+Prevent UPDATE SET oid(Jan)
+Fix pg_dump so -t option can handle case-sensitive tablenames
+Fixes for GROUP BY in special cases(Tom, Jan)
+Fix for memory leak in failed queries(Tom)
+DEFAULT now supports mixed-case identifiers(Tom)
+Fix for multisegment uses of DROP/RENAME table, indexes(Ole Gjerde)
+Disable use of pg_dump with both -o and -d options(Bruce)
+Allow pg_dump to properly dump group privileges(Bruce)
+Fix GROUP BY in INSERT INTO table SELECT * FROM table2(Jan)
+Fix for computations in views(Jan)
+Fix for aggregates on array indexes(Tom)
+Fix for DEFAULT handles single quotes in value requiring too many quotes
+Fix security problem with non-super users importing/exporting large objects(Tom)
+Rollback of transaction that creates table cleaned up properly(Tom)
+Fix to allow long table and column names to generate proper serial names(Tom)
+
+Enhancements
+------------
+Add "vacuumdb" utility
+Speed up libpq by allocating memory better(Tom)
+EXPLAIN all indexes used(Tom)
+Implement CASE, COALESCE, NULLIF  expression(Thomas)
+New pg_dump table output format(Constantin)
+Add string min()/max() functions(Thomas)
+Extend new type coercion techniques to aggregates(Thomas)
+New moddatetime contrib(Terry)
+Update to pgaccess 0.96(Constantin)
+Add routines for single-byte "char" type(Thomas)
+Improved substr() function(Thomas)
+Improved multibyte handling(Tatsuo)
+Multiversion concurrency control/MVCC(Vadim)
+New Serialized mode(Vadim)
+Fix for tables over 2gigs(Peter)
+New SET TRANSACTION ISOLATION LEVEL(Vadim)
+New LOCK TABLE IN ... MODE(Vadim)
+Update ODBC driver(Byron)
+New NUMERIC data type(Jan)
+New SELECT FOR UPDATE(Vadim)
+Handle "NaN" and "Infinity" for input values(Jan)
+Improved date/year handling(Thomas)
+Improved handling of backend connections(Magnus)
+New options ELOG_TIMESTAMPS and USE_SYSLOG options for log files(Massimo)
+New TCL_ARRAYS option(Massimo)
+New INTERSECT and EXCEPT(Stefan)
+New pg_index.indisprimary for primary key tracking(D'Arcy)
+New pg_dump option to allow dropping of tables before creation(Brook)
+Speedup of row output routines(Tom)
+New READ COMMITTED isolation level(Vadim)
+New TEMP tables/indexes(Bruce)
+Prevent sorting if result is already sorted(Jan)
+New memory allocation optimization(Jan)
+Allow psql to do \p\g(Bruce)
+Allow multiple rule actions(Jan)
+Added LIMIT/OFFSET functionality(Jan)
+Improve optimizer when joining a large number of tables(Bruce)
+New intro to SQL from S. Simkovics' Master's Thesis (Stefan, Thomas)
+New intro to backend processing from S. Simkovics' Master's Thesis (Stefan)
+Improved int8 support(Ryan Bradetich, Thomas, Tom)
+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)
+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)
+Allow psql \d on a view show query(Ryan)
+Speedup for LIKE(Bruce)
+Ecpg fixes/features, see src/interfaces/ecpg/ChangeLog file(Michael)
+JDBC fixes/features, see src/interfaces/jdbc/CHANGELOG(Peter)
+Make % operator have precedence like /(Bruce)
+Add new postgres -O option to allow system table structure changes(Bruce)
+Update contrib/pginterface/findoidjoins script(Tom)
+Major speedup in vacuum of deleted rows with indexes(Vadim)
+Allow non-SQL functions to run different versions based on arguments(Tom)
+Add -E option that shows actual queries sent by \dt and friends(Masaaki Sakaida)
+Add version number in start-up banners for psql(Masaaki Sakaida)
+New contrib/vacuumlo removes large objects not referenced(Peter)
+New initialization for table sizes so non-vacuumed tables perform better(Tom)
+Improve error messages when a connection is rejected(Tom)
+Support for arrays of char() and varchar() fields(Massimo)
+Overhaul of hash code to increase reliability and performance(Tom)
+Update to PyGreSQL 2.4(D'Arcy)
+Changed debug options so -d4 and -d5 produce different node displays(Jan)
+New pg_options: pretty_plan, pretty_parse, pretty_rewritten(Jan)
+Better optimization statistics for system table access(Tom)
+Better handling of non-default block sizes(Massimo)
+Improve GEQO optimizer memory consumption(Tom)
+UNION now supports ORDER BY of columns not in target list(Jan)
+Major libpq++ improvements(Vince Vielhaber)
+pg_dump now uses -z(ACL's) as default(Bruce)
+backend cache, memory speedups(Tom)
+have pg_dump do everything in one snapshot transaction(Vadim)
+fix for large object memory leakage, fix for pg_dumping(Tom)
+INET type now respects netmask for comparisons
+Make VACUUM ANALYZE only use a readlock(Vadim)
+Allow VIEWs on UNIONS(Jan)
+pg_dump now can generate consistent snapshots on active databases(Vadim)
+
+Source Tree Changes
+-------------------
+Improve port matching(Tom)
+Portability fixes for SunOS
+Add Windows NT backend port and enable dynamic loading(Magnus and Daniel Horak)
+New port to Cobalt Qube(Mips) running Linux(Tatsuo)
+Port to NetBSD/m68k(Mr. Mutsuki Nakajima)
+Port to NetBSD/sun3(Mr. Mutsuki Nakajima)
+Port to NetBSD/macppc(Toshimi Aoki)
+Fix for tcl/tk configuration(Vince)
+Removed CURRENT key word for rule queries(Jan)
+NT dynamic loading now works(Daniel Horak)
+Add ARM32 support(Andrew McMurry)
+Better support for HP-UX 11 and UnixWare
+Improve file handling to be more uniform, prevent file descriptor leak(Tom)
+New install commands for plpgsql(Jan)
+    
+   
+  
+
+
+
+Release 6.4.2
+
+  
+  Release date
+  1998-12-20
+  
+
+
+The 6.4.1 release was improperly packaged.  This also has one additional
+bug fix.
+
+
+
+
+Migration to Version 6.4.2
+
+
+A dump/restore is not required for those running
+6.4.*.
+
+
+
+Changes
+
+
+
+Fix for datetime constant problem on some platforms(Thomas)
+
+
+
+
+
+
+
+
+Release 6.4.1
+
+  
+  Release date
+  1998-12-18
+  
+
+
+This is basically a cleanup release for 6.4.  We have fixed a variety of
+problems reported by 6.4 users.
+
+
+
+
+Migration to Version 6.4.1
+
+
+A dump/restore is not required for those running
+6.4.
+
+
+
+Changes
+
+
+
+Add pg_dump -N flag to force double quotes around identifiers.  This is
+       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)
+Fix a couple of pg_dump bugs
+Configure matches template/.similar entries better(Tom)
+Change builtin function names from SPI_* to spi_*
+OR WHERE clause fix(Vadim)
+Fixes for mixed-case table names(Billy)
+contrib/linux/postgres.init.csh/sh fix(Thomas)
+libpq memory overrun fix
+SunOS fixes(Tom)
+Change exp() behavior to generate error on underflow(Thomas)
+pg_dump fixes for memory leak, inheritance constraints, layout change
+update pgaccess to 0.93
+Fix prototype for 64-bit platforms
+Multibyte fixes(Tatsuo)
+New ecpg man page
+Fix memory overruns(Tatsuo)
+Fix for lo_import() crash(Bruce)
+Better search for install program(Tom)
+Timezone fixes(Tom)
+HP-UX fixes(Tom)
+Use implicit type coercion for matching DEFAULT values(Thomas)
+Add routines to help with single-byte (internal) character type(Thomas)
+Compilation of libpq for Windows fixes(Magnus)
+Upgrade to PyGreSQL 2.2(D'Arcy)
+
+
+
+
+
+
+
+
+Release 6.4
+
+  
+  Release date
+  1998-10-30
+  
+
+
+There are many new features and improvements in this release.
+Thanks to our developers and maintainers, nearly every aspect of the system
+has received some attention since the previous release.
+Here is a brief, incomplete summary:
+
+
+
+
+Views and rules are now functional thanks to extensive new code in the
+rewrite rules system from Jan Wieck. He also wrote a chapter on it
+for the Programmer's Guide.
+
+
+
+
+Jan also contributed a second procedural language, PL/pgSQL, to go with the
+original PL/pgTCL procedural language he contributed last release.
+
+
+
+
+
+We have optional multiple-byte character set support from Tatsuo Ishii
+to complement our existing locale support.
+
+
+
+
+
+Client/server communications has been cleaned up, with better support for
+asynchronous messages and interrupts thanks to Tom Lane.
+
+
+
+
+
+The parser will now perform automatic type coercion to match arguments
+to available operators and functions, and to match columns and expressions
+with target columns. This uses a generic mechanism which supports
+the type extensibility features of PostgreSQL.
+There is a new chapter in the User's Guide
+which covers this topic.
+
+
+
+
+
+Three new data types have been added.
+Two types, inet and cidr, support various forms
+of IP network, subnet, and machine addressing. There is now an 8-byte integer
+type available on some platforms. See the chapter on data types
+in the User's Guide for details.
+A fourth type, serial, is now supported by the parser as an
+amalgam of the int4 type, a sequence, and a unique index.
+
+
+
+
+
+Several more SQL92-compatible syntax features have been
+added, including INSERT DEFAULT VALUES
+
+
+
+
+
+The automatic configuration and installation system has received some
+attention, and should be more robust for more platforms than it has ever
+been.
+
+
+
+
+
+
+
+Migration to Version 6.4
+
+
+A dump/restore using pg_dump
+or pg_dumpall
+is required for those wishing to migrate data from any
+previous release of PostgreSQL.
+
+
+
+  
+Changes
+
+   
+    
+Bug Fixes
+---------
+Fix for a tiny memory leak in PQsetdb/PQfinish(Bryan)
+Remove char2-16 data types, use char/varchar(Darren)
+Pqfn not handles a NOTICE message(Anders)
+Reduced busywaiting overhead for spinlocks with many backends (dg)
+Stuck spinlock detection (dg)
+Fix up "ISO-style" timespan decoding and encoding(Thomas)
+Fix problem with table drop after rollback of transaction(Vadim)
+Change error message and remove non-functional update message(Vadim)
+Fix for COPY array checking
+Fix for SELECT 1 UNION SELECT NULL
+Fix for buffer leaks in large object calls(Pascal)
+Change owner from oid to int4 type(Bruce)
+Fix a bug in the oracle compatibility functions btrim() ltrim() and rtrim()
+Fix for shared invalidation cache overflow(Massimo)
+Prevent file descriptor leaks in failed COPY's(Bruce)
+Fix memory leak in libpgtcl's pg_select(Constantin)
+Fix problems with username/passwords over 8 characters(Tom)
+Fix problems with handling of asynchronous NOTIFY in backend(Tom)
+Fix of many bad system table entries(Tom)
+
+Enhancements
+------------
+Upgrade ecpg and ecpglib,see src/interfaces/ecpc/ChangeLog(Michael)
+Show the index used in an EXPLAIN(Zeugswetter)
+EXPLAIN  invokes  rule system and shows plan(s) for rewritten queries(Jan)
+Multibyte awareness of many data types and functions, via configure(Tatsuo)
+New configure --with-mb option(Tatsuo)
+New initdb --pgencoding option(Tatsuo)
+New createdb -E multibyte option(Tatsuo)
+Select version(); now returns PostgreSQL version(Jeroen)
+libpq now allows asynchronous clients(Tom)
+Allow cancel from client of backend query(Tom)
+psql now cancels query with Control-C(Tom)
+libpq users need not issue dummy queries to get NOTIFY messages(Tom)
+NOTIFY now sends sender's PID, so you can tell whether it was your own(Tom)
+PGresult struct now includes associated error message, if any(Tom)
+Define "tz_hour" and "tz_minute" arguments to date_part()(Thomas)
+Add routines to convert between varchar and bpchar(Thomas)
+Add routines to allow sizing of varchar and bpchar into target columns(Thomas)
+Add bit flags to support timezonehour and minute in data retrieval(Thomas)
+Allow more variations on valid floating point numbers (e.g. ".1", "1e6")(Thomas)
+Fixes for unary minus parsing with leading spaces(Thomas)
+Implement TIMEZONE_HOUR, TIMEZONE_MINUTE per SQL92 specs(Thomas)
+Check for and properly ignore FOREIGN KEY column constraints(Thomas)
+Define USER as synonym for CURRENT_USER per SQL92 specs(Thomas)
+Enable HAVING clause but no fixes elsewhere yet.
+Make "char" type a synonym for "char(1)" (actually implemented as bpchar)(Thomas)
+Save string type if specified for DEFAULT clause handling(Thomas)
+Coerce operations involving different data types(Thomas)
+Allow some index use for columns of different types(Thomas)
+Add capabilities for automatic type conversion(Thomas)
+Cleanups for large objects, so file is truncated on open(Peter)
+Readline cleanups(Tom)
+Allow psql  \f \ to make spaces as delimiter(Bruce)
+Pass pg_attribute.atttypmod to the frontend for column field lengths(Tom,Bruce)
+Msql compatibility library in /contrib(Aldrin)
+Remove the requirement that ORDER/GROUP BY clause identifiers be
+included in the target list(David)
+Convert columns to match columns in UNION clauses(Thomas)
+Remove fork()/exec() and only do fork()(Bruce)
+Jdbc cleanups(Peter)
+Show backend status on ps command line(only works on some platforms)(Bruce)
+Pg_hba.conf now has a sameuser option in the database field
+Make lo_unlink take oid param, not int4
+New DISABLE_COMPLEX_MACRO for compilers that cannot handle our macros(Bruce)
+Libpgtcl now handles NOTIFY as a Tcl event, need not send dummy queries(Tom)
+libpgtcl cleanups(Tom)
+Add -error option to libpgtcl's pg_result command(Tom)
+New locale patch, see docs/README/locale(Oleg)
+Fix for pg_dump so CONSTRAINT and CHECK syntax is correct(ccb)
+New contrib/lo code for large object orphan removal(Peter)
+New psql command "SET CLIENT_ENCODING TO 'encoding'" for multibytes
+feature, see /doc/README.mb(Tatsuo)
+contrib/noupdate code to revoke update permission on a column
+libpq can now be compiled on Windows(Magnus)
+Add PQsetdbLogin() in libpq
+New 8-byte integer type, checked by configure for OS support(Thomas)
+Better support for quoted table/column names(Thomas)
+Surround table and column names with double-quotes in pg_dump(Thomas)
+PQreset() now works with passwords(Tom)
+Handle case of GROUP BY target list column number out of range(David)
+Allow UNION in subselects
+Add auto-size to screen to \d? commands(Bruce)
+Use UNION to show all \d? results in one query(Bruce)
+Add \d? field search feature(Bruce)
+Pg_dump issues fewer \connect requests(Tom)
+Make pg_dump -z flag work better, document it in manual page(Tom)
+Add HAVING clause with full support for subselects and unions(Stephan)
+Full text indexing routines in contrib/fulltextindex(Maarten)
+Transaction ids now stored in shared memory(Vadim)
+New PGCLIENTENCODING when issuing COPY command(Tatsuo)
+Support for SQL92 syntax "SET NAMES"(Tatsuo)
+Support for LATIN2-5(Tatsuo)
+Add UNICODE regression test case(Tatsuo)
+Lock manager cleanup, new locking modes for LLL(Vadim)
+Allow index use with OR clauses(Bruce)
+Allows "SELECT NULL ORDER BY 1;"
+Explain VERBOSE prints the plan, and now pretty-prints the plan to
+the postmaster log file(Bruce)
+Add indexes display to \d command(Bruce)
+Allow GROUP BY on functions(David)
+New pg_class.relkind for large objects(Bruce)
+New way to send libpq NOTICE messages to a different location(Tom)
+New \w write command to psql(Bruce)
+New /contrib/findoidjoins scans oid columns to find join relationships(Bruce)
+Allow binary-compatible indexes to be considered when checking for valid
+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
+System indexes are now multikey(Bruce)
+Oidint2, oidint4, and oidname types are removed(Bruce)
+Use system cache for more system table lookups(Bruce)
+New backend programming language PL/pgSQL in backend/pl(Jan)
+New SERIAL data type, auto-creates sequence/index(Thomas)
+Enable assert checking without a recompile(Massimo)
+User lock enhancements(Massimo)
+New setval() command to set sequence value(Massimo)
+Auto-remove unix socket file on start-up if no postmaster running(Massimo)
+Conditional trace package(Massimo)
+New UNLISTEN command(Massimo)
+psql and libpq now compile under Windows using win32.mak(Magnus)
+Lo_read no longer stores trailing NULL(Bruce)
+Identifiers are now truncated to 31 characters internally(Bruce)
+Createuser options now available on the command line
+Code for 64-bit integer supported added, configure tested, int8 type(Thomas)
+Prevent file descriptor leaf from failed COPY(Bruce)
+New pg_upgrade command(Bruce)
+Updated /contrib directories(Massimo)
+New CREATE TABLE DEFAULT VALUES statement available(Thomas)
+New INSERT INTO TABLE DEFAULT VALUES statement available(Thomas)
+New DECLARE and FETCH feature(Thomas)
+libpq's internal structures now not exported(Tom)
+Allow up to 8 key indexes(Bruce)
+Remove ARCHIVE key word, that is no longer used(Thomas)
+pg_dump -n flag to suppress quotes around indentifiers
+disable system columns for views(Jan)
+new INET and CIDR types for network addresses(TomH, Paul)
+no more double quotes in psql output
+pg_dump now dumps views(Terry)
+new SET QUERY_LIMIT(Tatsuo,Jan)
+
+Source Tree Changes
+-------------------
+/contrib cleanup(Jun)
+Inline some small functions called for every row(Bruce)
+Alpha/linux fixes
+HP-UX cleanups(Tom)
+Multibyte regression tests(Soonmyung.)
+Remove --disabled options from configure
+Define PGDOC to use POSTGRESDIR by default
+Make regression optional
+Remove extra braces code to pgindent(Bruce)
+Add bsdi shared library support(Bruce)
+New --without-CXX support configure option(Brook)
+New FAQ_CVS
+Update backend flowchart in tools/backend(Bruce)
+Change atttypmod from int16 to int32(Bruce, Tom)
+Getrusage() fix for platforms that do not have it(Tom)
+Add PQconnectdb, PGUSER, PGPASSWORD to libpq man page
+NS32K platform fixes(Phil Nelson, John Buller)
+SCO 7/UnixWare 2.x fixes(Billy,others)
+Sparc/Solaris 2.5 fixes(Ryan)
+Pgbuiltin.3 is obsolete, move to doc files(Thomas)
+Even more documentation(Thomas)
+Nextstep support(Jacek)
+Aix support(David)
+pginterface manual page(Bruce)
+shared libraries all have version numbers
+merged all OS-specific shared library defines into one file
+smarter TCL/TK configuration checking(Billy)
+smarter perl configuration(Brook)
+configure uses supplied install-sh if no install script found(Tom)
+new Makefile.shlib for shared library configuration(Tom)
+
+
+
+
+
+
+Release 6.3.2
+
+  
+  Release date
+  1998-04-07
+  
+
+
+This is a bug-fix release for 6.3.x.
+Refer to the release notes for version 6.3 for a more complete summary of new features.
+
+
+Summary:
+
+
+
+
+Repairs automatic configuration support for some platforms, including Linux,
+from breakage inadvertently introduced in version 6.3.1.
+
+
+
+
+
+Correctly handles function calls on the left side of BETWEEN and LIKE clauses.
+
+
+
+
+
+
+A dump/restore is NOT required for those running 6.3 or 6.3.1.  A
+make distclean, make, and make install is all that is required.
+This last step should be performed while the postmaster is not running.
+You should re-link any custom applications that use PostgreSQL libraries.
+
+
+For upgrades from pre-6.3 installations,
+refer to the installation and migration instructions for version 6.3.
+
+
+  
+   Changes
+
+   
+    
+Configure detection improvements for tcl/tk(Brook Milligan, Alvin)
+Manual page improvements(Bruce)
+BETWEEN and LIKE fix(Thomas)
+fix for psql \connect used by pg_dump(Oliver Elphick)
+New odbc driver
+pgaccess, version 0.86
+qsort removed, now uses libc version, cleanups(Jeroen)
+fix for buffer over-runs detected(Maurice Gittens)
+fix for buffer overrun in libpgtcl(Randy Kunkee)
+fix for UNION with DISTINCT or ORDER BY(Bruce)
+gettimeofday configure check(Doug Winterburn)
+Fix "indexes not used" bug(Vadim)
+docs additions(Thomas)
+Fix for backend memory leak(Bruce)
+libreadline cleanup(Erwan MAS)
+Remove DISTDIR(Bruce)
+Makefile dependency cleanup(Jeroen van Vianen)
+ASSERT fixes(Bruce)
+    
+   
+  
+
+  Release 6.3.1
+
+  
+  Release date
+  1998-03-23
+  
+
+  
+   Summary:
+
+
+
+
+Additional support for multibyte character sets.
+
+
+
+
+
+Repair byte ordering for mixed-endian clients and servers.
+
+
+
+
+
+Minor updates to allowed SQL syntax.
+
+
+
+
+
+Improvements to the configuration autodetection for installation.
+
+
+
+
+
+
+A dump/restore is NOT required for those running 6.3.  A
+make distclean, make, and make install is all that is required.
+This last step should be performed while the postmaster is not running.
+You should re-link any custom applications that use PostgreSQL libraries.
+
+
+For upgrades from pre-6.3 installations,
+refer to the installation and migration instructions for version 6.3.
+
+
+  
+   Changes
+
+   
+    
+ecpg cleanup/fixes, now version 1.1(Michael Meskes)
+pg_user cleanup(Bruce)
+large object fix for pg_dump and tclsh (alvin)
+LIKE fix for multiple adjacent underscores
+fix for redefining builtin functions(Thomas)
+ultrix4 cleanup
+upgrade to pg_access 0.83
+updated CLUSTER manual page
+multibyte character set support, see doc/README.mb(Tatsuo)
+configure --with-pgport fix
+pg_ident fix
+big-endian fix for backend communications(Kataoka)
+SUBSTR() and substring() fix(Jan)
+several jdbc fixes(Peter)
+libpgtcl improvements, see libptcl/README(Randy Kunkee)
+Fix for "Datasize = 0" error(Vadim)
+Prevent \do from wrapping(Bruce)
+Remove duplicate Russian character set entries
+Sunos4 cleanup
+Allow optional TABLE key word in LOCK and SELECT INTO(Thomas)
+CREATE SEQUENCE options to allow a negative integer(Thomas)
+Add "PASSWORD" as an allowed column identifier(Thomas)
+Add checks for UNION target fields(Bruce)
+Fix Alpha port(Dwayne Bailey)
+Fix for text arrays containing quotes(Doug Gibson)
+Solaris compile fix(Albert Chin-A-Young)
+Better identify tcl and tk libs and includes(Bruce)
+    
+   
+  
+
+  Release 6.3
+
+  
+  Release date
+  1998-03-01
+  
+
+  
+   There are many new features and improvements in this release.
+   Here is a brief, incomplete summary:
+
+   
+    
+     
+      Many new SQL features, including
+      full SQL92 subselect capability
+      (everything is here but target-list subselects).
+     
+    
+
+    
+     
+      Support for client-side environment variables to specify time zone and date style.
+     
+    
+
+    
+     
+      Socket interface for client/server connection. This is the default now
+      so you might need to start postmaster with the
+       flag.
+     
+    
+
+    
+     
+      Better password authorization mechanisms. Default table privileges have changed.
+     
+    
+
+    
+     
+      Old-style time travel
+      has been removed. Performance has been improved.
+     
+    
+   
+  
+
+  
+   
+    Bruce Momjian wrote the following notes to introduce the new release.
+   
+  
+
+  
+   There are some general 6.3 issues that I want to mention.  These are
+   only the big items that cannot be described in one sentence.  A review
+   of the detailed changes list is still needed.
+  
+  
+   First, we now have subselects.  Now that we have them, I would like to
+   mention that without subselects, SQL is a very limited language.
+   Subselects are a major feature, and you should review your code for
+   places where subselects provide a better solution for your queries.  I
+   think you will find that there are more uses for subselects than you might
+   think.  Vadim has put us on the big SQL map with subselects, and fully
+   functional ones too.  The only thing you cannot do with subselects is to
+   use them in the target list.
+  
+  
+   Second, 6.3 uses Unix domain sockets rather than TCP/IP by default.  To
+   enable connections from other machines, you have to use the new
+   postmaster -i option, and of course edit pg_hba.conf.  Also, for this
+   reason, the format of pg_hba.conf has changed.
+  
+  
+   Third, char() fields will now allow faster access than varchar() or
+   text. Specifically, the text and varchar() have a penalty for access to
+   any columns after the first column of this type.  char() used to also
+   have this access penalty, but it no longer does.  This might suggest that
+   you redesign some of your tables, especially if you have short character
+   columns that you have defined as varchar() or text.  This and other
+   changes make 6.3 even faster than earlier releases.
+  
+  
+   We now have passwords definable independent of any Unix file.  There are
+   new SQL USER commands.
+   See the Administrator's Guide for more
+   information.  There is a new table, pg_shadow, which is used to store
+   user information and user passwords, and it by default only SELECT-able
+   by the postgres super-user.  pg_user is now a view of pg_shadow, and is
+   SELECT-able by PUBLIC.  You should keep using pg_user in your
+   application without changes.
+  
+  
+   User-created tables now no longer have SELECT privilege to PUBLIC by
+   default.  This was done because the ANSI standard requires it.  You can
+   of course GRANT any privileges you want after the table is created.
+   System tables continue to be SELECT-able by PUBLIC.
+  
+  
+   We also have real deadlock detection code.  No more sixty-second
+   timeouts.  And the new locking code implements a FIFO better, so there
+   should be less resource starvation during heavy use.
+  
+  
+   Many complaints have been made about inadequate documentation in previous
+   releases.  Thomas has put much effort into many new manuals for this
+   release.  Check out the doc/ directory.
+  
+  
+   For performance reasons, time travel is gone, but can be implemented
+   using triggers (see pgsql/contrib/spi/README).  Please check out the new
+   \d command for types, operators, etc.  Also, views have their own
+   privileges now, not based on the underlying tables, so privileges on
+   them have to be set separately.  Check /pgsql/interfaces for some new
+   ways to talk to PostgreSQL.
+  
+  
+   This is the first release that really required an explanation for
+   existing users.  In many ways, this was necessary because the new
+   release removes many limitations, and the work-arounds people were using
+   are no longer needed.
+  
+
+  
+   Migration to Version 6.3
+
+   
+    A dump/restore using pg_dump
+    or pg_dumpall
+    is required for those wishing to migrate data from any
+    previous release of PostgreSQL.
+   
+  
+
+  
+   Changes
+
+   
+    
+Bug Fixes
+---------
+Fix binary cursors broken by MOVE implementation(Vadim)
+Fix for tcl library crash(Jan)
+Fix for array handling, from Gerhard Hintermayer
+Fix acl error, and remove duplicate pqtrace(Bruce)
+Fix psql \e for empty file(Bruce)
+Fix for textcat on varchar() fields(Bruce)
+Fix for DBT Sendproc (Zeugswetter Andres)
+Fix vacuum analyze syntax problem(Bruce)
+Fix for international identifiers(Tatsuo)
+Fix aggregates on inherited tables(Bruce)
+Fix substr() for out-of-bounds data
+Fix for select 1=1 or 2=2, select 1=1 and 2=2, and select sum(2+2)(Bruce)
+Fix notty output to show status result.  -q option still turns it off(Bruce)
+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)
+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)
+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)
+Major large objects fix
+Fix for GROUP BY showing duplicates(Vadim)
+Fix for index scans in MergeJoin(Vadim)
+
+Enhancements
+------------
+Subselects with EXISTS, IN, ALL, ANY key words (Vadim, Bruce, Thomas)
+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)
+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)
+Allow NOT NULL UNIQUE constraint clause (each allowed separately before)(Thomas)
+Allow PostgreSQL-style casting ("::") of non-constants(Thomas)
+Add support for SQL3 TRUE and FALSE boolean constants(Thomas)
+Support SQL92 syntax for IS TRUE/IS FALSE/IS NOT TRUE/IS NOT FALSE(Thomas)
+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)
+Add conversions for int2, int4, and OID types to and from text(Thomas)
+Use shared lock when building indexes(Vadim)
+Free memory allocated for an user query inside transaction block after
+       this query is done, was turned off in <= 6.2.1(Vadim)
+New SQL statement CREATE PROCEDURAL LANGUAGE(Jan)
+New PostgreSQL Procedural Language (PL) backend interface(Jan)
+Rename pg_dump -H option to -h(Bruce)
+Add Java support for passwords, European dates(Peter)
+Use indexes for LIKE and ~, !~ operations(Bruce)
+Add hash functions for datetime and timespan(Thomas)
+Time Travel removed(Vadim, Bruce)
+Add paging for \d and \z, and fix \i(Bruce)
+Add Unix domain socket support to backend and to frontend library(Goran)
+Implement CREATE DATABASE/WITH LOCATION and initlocation utility(Thomas)
+Allow more SQL92 and/or PostgreSQL reserved words as column identifiers(Thomas)
+Augment support for SQL92 SET TIME ZONE...(Thomas)
+SET/SHOW/RESET TIME ZONE uses TZ backend environment variable(Thomas)
+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)
+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)
+Increase 16 char limit on system table/index names to 32 characters(Bruce)
+Rename system indexes(Bruce)
+Add 'GERMAN' option to SET DATESTYLE(Thomas)
+Define an "ISO-style" timespan output format with "hh:mm:ss" fields(Thomas)
+Allow fractional values for delta times (e.g. '2.5 days')(Thomas)
+Validate numeric input more carefully for delta times(Thomas)
+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)
+Dump ACLs, GRANT, REVOKE privileges(Matt)
+Define text, varchar, and bpchar string length functions(Thomas)
+Fix Query handling for inheritance, and cost computations(Bruce)
+Implement CREATE TABLE/AS SELECT (alternative to SELECT/INTO)(Thomas)
+Allow NOT, IS NULL, IS NOT NULL in constraints(Thomas)
+Implement UNIONs for SELECT(Bruce)
+Add UNION, GROUP, DISTINCT to INSERT(Bruce)
+varchar() stores only necessary bytes on disk(Bruce)
+Fix for BLOBs(Peter)
+Mega-Patch for JDBC...see README_6.3 for list of changes(Peter)
+Remove unused "option" from PQconnectdb()
+New LOCK command and lock manual page describing deadlocks(Bruce)
+Add new psql \da, \dd, \df, \do, \dS, and \dT commands(Bruce)
+Enhance psql \z to show sequences(Bruce)
+Show NOT NULL and DEFAULT in psql \d table(Bruce)
+New psql .psqlrc file start-up(Andrew)
+Modify sample start-up script in contrib/linux to show syslog(Thomas)
+New types for IP and MAC addresses in contrib/ip_and_mac(TomH)
+Unix system time conversions with date/time types in contrib/unixdate(Thomas)
+Update of contrib stuff(Massimo)
+Add Unix socket support to DBD::Pg(Goran)
+New python interface (PyGreSQL 2.0)(D'Arcy)
+New frontend/backend protocol has a version number, network byte order(Phil)
+Security features in pg_hba.conf enhanced and documented, many cleanups(Phil)
+CHAR() now faster access than VARCHAR() or TEXT
+ecpg embedded SQL preprocessor
+Reduce system column overhead(Vadmin)
+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)
+Tables now have no default GRANT SELECT TO PUBLIC.  You must
+       explicitly grant such privileges.
+Clean up tutorial examples(Darren)
+
+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
+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)
+Sparc/Linux patch for locking(TomS)
+Remove PORTNAME and reorganize port-specific stuff(Marc)
+Add optimizer README file(Bruce)
+Remove some recursion in optimizer and clean up some code there(Bruce)
+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)
+Various fixes NetBSD/Sparc related(TomH)
+Alpha linux locking(Travis,Ryan)
+Change elog(WARN) to elog(ERROR)(Bruce)
+FAQ for FreeBSD(Marc)
+Bring in the PostODBC source tree as part of our standard distribution(Marc)
+A minor patch for HP/UX 10 vs 9(Stan)
+New pg_attribute.atttypmod for type-specific info like varchar length(Bruce)
+UnixWare patches(Billy)
+New i386 'lock' for spinlock asm(Billy)
+Support for multiplexed backends is removed
+Start an OpenBSD port
+Start an AUX port
+Start a Cygnus port
+Add string functions to regression suite(Thomas)
+Expand a few function names formerly truncated to 16 characters(Thomas)
+Remove un-needed malloc() calls and replace with palloc()(Bruce)
+
+
+
+
+
+
+Release 6.2.1
+
+  
+  Release date
+  1997-10-17
+  
+
+
+6.2.1 is a bug-fix and usability release on 6.2.
+
+
+Summary:
+
+
+
+
+Allow strings to span lines, per SQL92.
+
+
+
+
+
+Include example trigger function for inserting user names on table updates.
+
+
+
+
+
+
+This is a minor bug-fix release on 6.2.
+For upgrades from pre-6.2 systems, a full dump/reload is required.
+Refer to the 6.2 release notes for instructions.
+
+
+
+Migration from version 6.2 to version 6.2.1
+
+
+This is a minor bug-fix release. A dump/reload is not required from version 6.2,
+but is required from any release prior to 6.2.
+
+
+In upgrading from version 6.2, if you choose to dump/reload you will find that
+avg(money) is now calculated correctly. All other bug fixes take effect
+upon updating the executables.
+
+
+Another way to avoid dump/reload is to use the following SQL command
+from psql to update the existing system table:
+
+
+ update pg_aggregate set aggfinalfn = 'cash_div_flt8'
+  where aggname = 'avg' and aggbasetype = 790;
+
+
+
+This will need to be done to every existing database, including template1.
+
+
+
+  
+   Changes
+
+   
+    
+Allow TIME and TYPE column names(Thomas)
+Allow larger range of true/false as boolean values(Thomas)
+Support output of "now" and "current"(Thomas)
+Handle DEFAULT with INSERT of NULL properly(Vadim)
+Fix for relation reference counts problem in buffer manager(Vadim)
+Allow strings to span lines, like ANSI(Thomas)
+Fix for backward cursor with ORDER BY(Vadim)
+Fix avg(cash) computation(Thomas)
+Fix for specifying a column twice in ORDER/GROUP BY(Vadim)
+Documented new libpq function to return affected rows, PQcmdTuples(Bruce)
+Trigger function for inserting user names for INSERT/UPDATE(Brook Milligan)
+    
+   
+  
+
+
+Release 6.2
+
+  
+  Release date
+  1997-10-02
+  
+
+
+A dump/restore is required for those wishing to migrate data from
+previous releases of PostgreSQL.
+
+
+
+Migration from version 6.1 to version 6.2
+
+
+This migration requires a complete dump of the 6.1 database and a
+restore of the database in 6.2.
+
+
+Note that the pg_dump and pg_dumpall utility from 6.2 should be used
+to dump the 6.1 database.
+
+
+
+
+Migration from version 1.<replaceable>x</> to version 6.2
+
+
+Those migrating from earlier 1.* releases should first upgrade to 1.09
+because the COPY output format was improved from the 1.02 release.
+
+
+
+  
+   Changes
+
+   
+    
+Bug Fixes
+---------
+Fix problems with pg_dump for inheritance, sequences, archive tables(Bruce)
+Fix compile errors on overflow due to shifts, unsigned, and bad prototypes
+        from Solaris(Diab Jerius)
+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)
+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)
+Fix GROUP BY when order of entries is different from order
+       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)
+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)
+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)
+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)
+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)
+Add syntax and warnings for UNION, HAVING, INNER and OUTER JOIN (SQL92)(Thomas)
+Add more reserved words, mostly for SQL92 compliance(Thomas)
+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)
+Add routine to convert circle-box(Thomas)
+Merge conflicting operators for different geometric data types(Thomas)
+Replace distance operator "<===>" with "<->"(Thomas)
+Replace "above" operator "!^" with ">^" and "below" operator "!|" with "<^"(Thomas)
+Add routines for text trimming on both ends, substring, and string position(Thomas)
+Added conversion routines circle(box) and poly(circle)(Thomas)
+Allow internal sorts to be stored in memory rather than in files(Bruce & Vadim)
+Allow 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)
+Reduce open() calls(Bruce)
+psql:  Add PAGER for \h and \?,\C fix
+Fix for psql pager when no tty(Bruce)
+New entab utility(Bruce)
+General trigger functions for referential integrity (Vadim)
+General trigger functions for time travel (Vadim)
+General trigger functions for AUTOINCREMENT/IDENTITY feature (Vadim)
+MOVE implementation (Vadim)
+
+Source Tree Changes
+-------------------
+HP-UX 10 patches (Vladimir Turin)
+Added SCO support, (Daniel Harris)
+MkLinux patches (Tatsuo Ishii)
+Change geometric box terminology from "length" to "width"(Thomas)
+Deprecate temporary unstored slope fields in geometric code(Thomas)
+Remove restart instructions from INSTALL(Bruce)
+Look in /usr/ucb first for install(Bruce)
+Fix c++ copy example code(Thomas)
+Add -o to psql manual page(Bruce)
+Prevent relname unallocated string length from being copied into database(Bruce)
+Cleanup for NAMEDATALEN use(Bruce)
+Fix pg_proc names over 15 chars in output(Bruce)
+Add strNcpy() function(Bruce)
+remove some (void) casts that are unnecessary(Bruce)
+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)
+Changes for Digital Unix
+Portability fix for pg_dumpall(Bruce)
+Rename pg_attribute.attnvals to attdispersion(Bruce)
+"intro/unix" manual page now "pgintro"(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 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)
+
+
+
+
+
+
+Release 6.1.1
+
+  
+  Release date
+  1997-07-22
+  
+
+
+Migration from version 6.1 to version 6.1.1
+
+
+This is a minor bug-fix release. A dump/reload is not required from version 6.1,
+but is required from any release prior to 6.1.
+Refer to the release notes for 6.1 for more details.
+
+
+
+  
+   Changes
+
+   
+    
+fix for SET with options (Thomas)
+allow pg_dump/pg_dumpall to preserve ownership of all tables/objects(Bruce)
+new psql \connect option allows changing usernames without changing databases
+fix for initdb --debug option(Yoshihiko Ichikawa))
+lextest cleanup(Bruce)
+hash fixes(Vadim)
+fix date/time month boundary arithmetic(Thomas)
+fix timezone daylight handling for some ports(Thomas, Bruce, Tatsuo)
+timestamp overhauled to use standard functions(Thomas)
+other code cleanup in date/time routines(Thomas)
+psql's \d now case-insensitive(Bruce)
+psql's backslash commands can now have trailing semicolon(Bruce)
+fix memory leak in psql when using \g(Bruce)
+major fix for endian handling of communication to server(Thomas, Tatsuo)
+Fix for Solaris assembler and include files(Yoshihiko Ichikawa)
+allow underscores in usernames(Bruce)
+pg_dumpall now returns proper status, portability fix(Bruce)
+    
+   
+  
+
+
+Release 6.1
+
+  
+  Release date
+  1997-06-08
+  
+
+
+ The regression tests have been adapted and extensively modified for the
+ 6.1 release of PostgreSQL.
+
+
+
+ Three new data types (datetimetimespan, and circle) have been added to
+ the native set of PostgreSQL types. Points, boxes, paths, and polygons
+ have had their output formats made consistent across the data types.
+ The polygon output in misc.out has only been spot-checked for correctness
+ relative to the original regression output.
+
+
+
PostgreSQL 6.1 introduces a new, alternate
+optimizer which uses genetic
+ algorithms. These algorithms introduce a random behavior in the ordering
+ of query results when the query contains multiple qualifiers or multiple
+ tables (giving the optimizer a choice on order of evaluation). Several
+ regression tests have been modified to explicitly order the results, and
+ hence are insensitive to optimizer choices. A few regression tests are
+ for data types which are inherently unordered (e.g. points and time
+ intervals) and tests involving those types are explicitly bracketed with
set geqo to 'off' and reset geqo.
+
+
+
+ The interpretation of array specifiers (the curly braces around atomic
+ values) appears to have changed sometime after the original regression
+ tests were generated. The current ./expected/*.out files reflect this
+ new interpretation, which might not be correct!
+
+
+
+ The float8 regression test fails on at least some platforms. This is due
+ to differences in implementations of pow() and exp() and the signaling
+ mechanisms used for overflow and underflow conditions.
+
+
+
+ The random results in the random test should cause the
random test to be failed, since the
+ regression tests are evaluated using a simple diff. However,
random does not seem to produce random results on my test
+ machine (Linux/gcc/i686).
+
+
+
+Migration to Version 6.1
+
+
+This migration requires a complete dump of the 6.0 database and a
+restore of the database in 6.1.
+
+
+Those migrating from earlier 1.* releases should first upgrade to 1.09
+because the COPY output format was improved from the 1.02 release.
+
+
+
+  
+   Changes
+
+   
+    
+Bug Fixes
+---------
+packet length checking in library routines
+lock manager priority patch
+check for under/over flow of float8(Bruce)
+multitable join fix(Vadim)
+SIGPIPE crash fix(Darren)
+large object fixes(Sven)
+allow btree indexes to handle NULLs(Vadim)
+timezone fixes(D'Arcy)
+select SUM(x) can return NULL on no rows(Thomas)
+internal optimizer, executor bug fixes(Vadim)
+fix problem where inner loop in < or <= has no rows(Vadim)
+prevent re-commuting join index clauses(Vadim)
+fix join clauses for multiple tables(Vadim)
+fix hash, hashjoin for arrays(Vadim)
+fix btree for abstime type(Vadim)
+large object fixes(Raymond)
+fix buffer leak in hash indexes (Vadim)
+fix rtree for use in inner scan (Vadim)
+fix gist for use in inner scan, cleanups (Vadim, Andrea)
+avoid unnecessary local buffers allocation (Vadim, Massimo)
+fix local buffers leak in transaction aborts (Vadim)
+fix file manager memmory leaks, cleanups (Vadim, Massimo)
+fix storage manager memmory leaks (Vadim)
+fix btree duplicates handling (Vadim)
+fix deleted rows reincarnation caused by vacuum (Vadim)
+fix SELECT varchar()/char() INTO TABLE made zero-length fields(Bruce)
+many psql, pg_dump, and libpq memory leaks fixed using Purify (Igor)
+
+Enhancements
+------------
+attribute optimization statistics(Bruce)
+much faster new btree bulk load code(Paul)
+BTREE UNIQUE added to bulk load code(Vadim)
+new lock debug code(Massimo)
+massive changes to libpg++(Leo)
+new GEQO optimizer speeds table multitable optimization(Martin)
+new WARN message for non-unique insert into unique key(Marc)
+update x=-3, no spaces, now valid(Bruce)
+remove case-sensitive identifier handling(Bruce,Thomas,Dan)
+debug backend now pretty-prints tree(Darren)
+new Oracle character functions(Edmund)
+new plaintext password functions(Dan)
+no such class or insufficient privilege changed to distinct messages(Dan)
+new ANSI timestamp function(Dan)
+new ANSI Time and Date types (Thomas)
+move large chunks of data in backend(Martin)
+multicolumn btree indexes(Vadim)
+new SET var TO value command(Martin)
+update transaction status on reads(Dan)
+new locale settings for character types(Oleg)
+new SEQUENCE serial number generator(Vadim)
+GROUP BY function now possible(Vadim)
+re-organize regression test(Thomas,Marc)
+new optimizer operation weights(Vadim)
+new psql \z grant/permit option(Marc)
+new MONEY data type(D'Arcy,Thomas)
+tcp socket communication speed improved(Vadim)
+new VACUUM option for attribute statistics, and for certain columns (Vadim)
+many geometric type improvements(Thomas,Keith)
+additional regression tests(Thomas)
+new datestyle variable(Thomas,Vadim,Martin)
+more comparison operators for sorting types(Thomas)
+new conversion functions(Thomas)
+new more compact btree format(Vadim)
+allow pg_dumpall to preserve database ownership(Bruce)
+new SET GEQO=# and R_PLANS variable(Vadim)
+old (!GEQO) optimizer can use right-sided plans (Vadim)
+typechecking improvement in SQL parser(Bruce)
+new SET, SHOW, RESET commands(Thomas,Vadim)
+new \connect database USER option
+new destroydb -i option (Igor)
+new \dt and \di psql commands (Darren)
+SELECT "\n" now escapes newline (A. Duursma)
+new geometry conversion functions from old format (Thomas)
+
+Source tree changes
+-------------------
+new configuration script(Marc)
+readline configuration option added(Marc)
+OS-specific configuration options removed(Marc)
+new OS-specific template files(Marc)
+no more need to edit Makefile.global(Marc)
+re-arrange include files(Marc)
+nextstep patches (Gregor Hoffleit)
+removed Windows-specific code(Bruce)
+removed postmaster -e option, now only postgres -e option (Bruce)
+merge duplicate library code in front/backends(Martin)
+now works with eBones, international Kerberos(Jun)
+more shared library support
+c++ include file cleanup(Bruce)
+warn about buggy flex(Bruce)
+DG/UX, Ultrix, IRIX, AIX portability fixes
+
+
+
+
+
+
+Release 6.0
+
+  
+  Release date
+  1997-01-29
+  
+
+
+A dump/restore is required for those wishing to migrate data from
+previous releases of PostgreSQL.
+
+
+
+Migration from version 1.09 to version 6.0
+
+
+This migration requires a complete dump of the 1.09 database and a
+restore of the database in 6.0.
+
+
+
+
+Migration from pre-1.09 to version 6.0
+
+
+Those migrating from earlier 1.* releases should first upgrade to 1.09
+because the COPY output format was improved from the 1.02 release.
+
+
+
+  
+   Changes
+
+   
+    
+Bug Fixes
+---------
+ALTER TABLE bug - running postgres process needs to re-read table definition
+Allow vacuum to be run on one table or entire database(Bruce)
+Array fixes
+Fix array over-runs of memory writes(Kurt)
+Fix elusive btree range/non-range bug(Dan)
+Fix for hash indexes on some types like time and date
+Fix for pg_log size explosion
+Fix permissions on lo_export()(Bruce)
+Fix uninitialized reads of memory(Kurt)
+Fixed ALTER TABLE ... char(3) bug(Bruce)
+Fixed a few small memory leaks
+Fixed EXPLAIN handling of options and changed full_path option name
+Fixed output of group acl privileges
+Memory leaks (hunt and destroy with tools like Purify(Kurt)
+Minor improvements to rules system
+NOTIFY fixes
+New asserts for run-checking
+Overhauled parser/analyze code to properly report errors and increase speed
+Pg_dump -d now handles NULL's properly(Bruce)
+Prevent SELECT NULL from crashing server (Bruce)
+Properly report errors when INSERT ... SELECT columns did not match
+Properly report errors when insert column names were not correct
+psql \g filename now works(Bruce)
+psql fixed problem with multiple statements on one line with multiple outputs
+Removed duplicate system OIDs
+SELECT * INTO TABLE . GROUP/ORDER BY gives unlink error if table exists(Bruce)
+Several fixes for queries that crashed the backend
+Starting quote in insert string errors(Bruce)
+Submitting an empty query now returns empty status, not just " " query(Bruce)
+
+Enhancements
+------------
+Add EXPLAIN manual page(Bruce)
+Add UNIQUE index capability(Dan)
+Add hostname/user level access control rather than just hostname and user
+Add synonym of != for <>(Bruce)
+Allow "select oid,* from table"
+Allow BY,ORDER BY to specify columns by number, or by non-alias table.column(Bruce)
+Allow COPY from the frontend(Bryan)
+Allow GROUP BY to use alias column name(Bruce)
+Allow actual compression, not just reuse on the same page(Vadim)
+Allow installation-configuration option to auto-add all local users(Bryan)
+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)
+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
+Execute lowercase function names if not found with exact case
+Fixes for aggregate/GROUP processing, allow 'select sum(func(x),sum(x+y) from z'
+Gist now included in the distribution(Marc)
+Idend authentication of local users(Bryan)
+Implement BETWEEN qualifier(Bruce)
+Implement IN qualifier(Bruce)
+libpq has PQgetisnull()(Bruce)
+libpq++ improvements
+New options to initdb(Bryan)
+Pg_dump allow dump of OIDs(Bruce)
+Pg_dump create indexes after tables are loaded for speed(Bruce)
+Pg_dumpall dumps all databases, and the user table
+Pginterface additions for NULL values(Bruce)
+Prevent postmaster from being run as root
+psql \h and \? is now readable(Bruce)
+psql allow backslashed, semicolons anywhere on the line(Bruce)
+psql changed command prompt for lines in query or in quotes(Bruce)
+psql char(3) now displays as (bp)char in \d output(Bruce)
+psql return code now more accurate(Bryan?)
+psql updated help syntax(Bruce)
+Re-visit and fix vacuum(Vadim)
+Reduce size of regression diffs, remove timezone name difference(Bruce)
+Remove compile-time parameters to enable binary distributions(Bryan)
+Reverse meaning of HBA masks(Bryan)
+Secure Authentication of local users(Bryan)
+Speed up vacuum(Vadim)
+Vacuum now had VERBOSE option(Bruce)
+
+Source tree changes
+-------------------
+All functions now have prototypes that are compared against the calls
+Allow asserts to be disabled easily from Makefile.global(Bruce)
+Change oid constants used in code to #define names
+Decoupled sparc and solaris defines(Kurt)
+Gcc -Wall compiles cleanly with warnings only from unfixable constructs
+Major include file reorganization/reduction(Marc)
+Make now stops on compile failure(Bryan)
+Makefile restructuring(Bryan, Marc)
+Merge bsdi_2_1 to bsdi(Bruce)
+Monitor program removed
+Name change from Postgres95 to PostgreSQL
+New config.h file(Marc, Bryan)
+PG_VERSION now set to 6.0 and used by postmaster
+Portability additions, including Ultrix, DG/UX, AIX, and Solaris
+Reduced the number of #define's, centralized #define's
+Remove duplicate OIDS in system tables(Dan)
+Remove duplicate system catalog info or report mismatches(Dan)
+Removed many os-specific #define's
+Restructured object file generation/location(Bryan, Marc)
+Restructured port-specific file locations(Bryan, Marc)
+Unused/uninitialized variables corrected
+
+
+
+
+
+
+Release 1.09
+
+  
+  Release date
+  1996-11-04
+  
+
+
+Sorry, we didn't keep track of changes from 1.02 to 1.09.  Some of
+the changes listed in 6.0 were actually included in the 1.02.1 to 1.09
+releases.
+
+
+
+
+Release 1.02
+
+  
+  Release date
+  1996-08-01
+  
+
+
+Migration from version 1.02 to version 1.02.1
+
+
+Here is a new migration file for 1.02.1.  It includes the 'copy' change
+and a script to convert old ASCII files.
+
+
+
+The following notes are for the benefit of users who want to migrate
+databases from Postgres95 1.01 and 1.02 to Postgres95 1.02.1.
+
+
+If you are starting afresh with Postgres95 1.02.1 and do not need
+to migrate old databases, you do not need to read any further.
+
+
+
+
+In order to upgrade older Postgres95 version 1.01 or 1.02 databases to
+version 1.02.1, the following steps are required:
+
+
+
+
+Start up a new 1.02.1 postmaster
+
+
+
+
+Add the new built-in functions and operators of 1.02.1 to 1.01 or 1.02
+  databases.  This is done by running the new 1.02.1 server against
+  your own 1.01 or 1.02 database and applying the queries attached at
+  the end of the file.   This can be done easily through psql.  If your
+  1.01 or 1.02 database is named testdb and you have cut the commands
+  from the end of this file and saved them in addfunc.sql:
+
+       % psql testdb -f addfunc.sql
+
+
+Those upgrading 1.02 databases will get a warning when executing the
+last two statements in the file because they are already present in 1.02.  This is
+not a cause for concern.
+
+
+
+
+
+
+Dump/Reload Procedure
+
+
+If you are trying to reload a pg_dump or text-mode, copy tablename to
+stdout generated with a previous version, you will need to run the
+attached sed script on the ASCII file before loading it into the
+database.  The old format used '.' as end-of-data, while '\.' is now the
+end-of-data marker.  Also, empty strings are now loaded in as '' rather
+than NULL. See the copy manual page for full details.
+
+
+       sed 's/^\.$/\\./g' <in_file >out_file
+
+
+
+If you are loading an older binary copy or non-stdout copy, there is no
+end-of-data character, and hence no conversion necessary.
+
+
+-- following lines added by agc to reflect the case-insensitive
+-- regexp searching for varchar (in 1.02), and bpchar (in 1.02.1)
+create operator ~* (leftarg = bpchar, rightarg = text, procedure = texticregexeq);
+create operator !~* (leftarg = bpchar, rightarg = text, procedure = texticregexne);
+create operator ~* (leftarg = varchar, rightarg = text, procedure = texticregexeq);
+create operator !~* (leftarg = varchar, rightarg = text, procedure = texticregexne);
+
+
+
+
+
+Changes
+
+
+
+Source code maintenance and development
+ * worldwide team of volunteers
+ * the source tree now in CVS at ftp.ki.net
+
+Enhancements
+ * psql (and underlying libpq library) now has many more options for
+   formatting output, including HTML
+ * pg_dump now output the schema and/or the data, with many fixes to
+   enhance completeness.
+ * psql used in place of monitor in administration shell scripts.
+   monitor to be deprecated in next release.
+ * date/time functions enhanced
+ * NULL insert/update/comparison fixed/enhanced
+ * TCL/TK lib and shell fixed to work with both tck7.4/tk4.0 and tcl7.5/tk4.1
+
+Bug Fixes (almost too numerous to mention)
+ * indexes
+ * storage management
+ * check for NULL pointer before dereferencing
+ * Makefile fixes
+
+New Ports
+ * added SolarisX86 port
+ * added BSD/OS 2.1 port
+ * added DG/UX port
+
+
+
+
+
+
+
+Release 1.01
+
+   
+   Release date
+   1996-02-23
+   
+
+
+
+Migration from version 1.0 to version 1.01
+
+
+The following notes are for the benefit of users who want to migrate
+databases from Postgres95 1.0 to Postgres95 1.01.
+
+
+If you are starting afresh with Postgres95 1.01 and do not need
+to migrate old databases, you do not need to read any further.
+
+
+In order to Postgres95 version 1.01 with databases created with
+Postgres95 version 1.0, the following steps are required:
+
+
+
+
+Set the definition of NAMEDATALEN in src/Makefile.global to 16
+   and OIDNAMELEN to 20.
+
+
+
+
+Decide whether you want to use Host based authentication.
+
+
+
+
+If you do, you must create a file name pg_hba in your top-level data
+   directory (typically the value of your $PGDATA).  src/libpq/pg_hba
+   shows an example syntax.
+
+
+
+
+If you do not want host-based authentication, you can comment out
+   the line:
+
+        HBA = 1
+
+   in src/Makefile.global
+
+
+   Note that host-based authentication is turned on by default, and if
+   you do not take steps A or B above, the out-of-the-box 1.01 will
+   not allow you to connect to 1.0 databases.
+
+
+
+
+
+
+
+Compile and install 1.01, but DO NOT do the initdb step.
+
+
+
+
+Before doing anything else, terminate your 1.0 postmaster, and
+   backup your existing $PGDATA directory.
+
+
+
+
+Set your PGDATA environment variable to your 1.0 databases, but set up
+   path up so that 1.01 binaries are being used.
+
+
+
+
+Modify the file $PGDATA/PG_VERSION from 5.0 to 5.1
+
+
+
+
+Start up a new 1.01 postmaster
+
+
+
+
+Add the new built-in functions and operators of 1.01 to 1.0
+   databases.  This is done by running the new 1.01 server against
+   your own 1.0 database and applying the queries attached and saving
+   in the file 1.0_to_1.01.sql.   This can be done easily through psql.
+   If your 1.0 database is name testdb:
+
+
+        % psql testdb -f 1.0_to_1.01.sql
+
+
+and then execute the following commands (cut and paste from here):
+
+
+-- add builtin functions that are new to 1.01
+
+create function int4eqoid (int4, oid) returns bool as 'foo'
+language 'internal';
+create function oideqint4 (oid, int4) returns bool as 'foo'
+language 'internal';
+create function char2icregexeq (char2, text) returns bool as 'foo'
+language 'internal';
+create function char2icregexne (char2, text) returns bool as 'foo'
+language 'internal';
+create function char4icregexeq (char4, text) returns bool as 'foo'
+language 'internal';
+create function char4icregexne (char4, text) returns bool as 'foo'
+language 'internal';
+create function char8icregexeq (char8, text) returns bool as 'foo'
+language 'internal';
+create function char8icregexne (char8, text) returns bool as 'foo'
+language 'internal';
+create function char16icregexeq (char16, text) returns bool as 'foo'
+language 'internal';
+create function char16icregexne (char16, text) returns bool as 'foo'
+language 'internal';
+create function texticregexeq (text, text) returns bool as 'foo'
+language 'internal';
+create function texticregexne (text, text) returns bool as 'foo'
+language 'internal';
+
+-- add builtin functions that are new to 1.01
+
+create operator = (leftarg = int4, rightarg = oid, procedure = int4eqoid);
+create operator = (leftarg = oid, rightarg = int4, procedure = oideqint4);
+create operator ~* (leftarg = char2, rightarg = text, procedure = char2icregexeq);
+create operator !~* (leftarg = char2, rightarg = text, procedure = char2icregexne);
+create operator ~* (leftarg = char4, rightarg = text, procedure = char4icregexeq);
+create operator !~* (leftarg = char4, rightarg = text, procedure = char4icregexne);
+create operator ~* (leftarg = char8, rightarg = text, procedure = char8icregexeq);
+create operator !~* (leftarg = char8, rightarg = text, procedure = char8icregexne);
+create operator ~* (leftarg = char16, rightarg = text, procedure = char16icregexeq);
+create operator !~* (leftarg = char16, rightarg = text, procedure = char16icregexne);
+create operator ~* (leftarg = text, rightarg = text, procedure = texticregexeq);
+create operator !~* (leftarg = text, rightarg = text, procedure = texticregexne);
+
+
+
+
+
+
+
+Changes
+
+
+
+Incompatibilities:
+ * 1.01 is backwards compatible with 1.0 database provided the user
+   follow the steps outlined in the MIGRATION_from_1.0_to_1.01 file.
+   If those steps are not taken, 1.01 is not compatible with 1.0 database.
+
+Enhancements:
+ * added PQdisplayTuples() to libpq and changed monitor and psql to use it
+ * added NeXT port (requires SysVIPC implementation)
+ * added CAST .. AS ... syntax
+ * added ASC and DESC key words
+ * added 'internal' as a possible language for CREATE FUNCTION
+   internal functions are C functions which have been statically linked
+   into the postgres backend.
+ * a new type "name" has been added for system identifiers (table names,
+   attribute names, etc.)  This replaces the old char16 type.   The
+   of name is set by the NAMEDATALEN #define in src/Makefile.global
+ * a readable reference manual that describes the query language.
+ * added host-based access control.  A configuration file ($PGDATA/pg_hba)
+   is used to hold the configuration data.  If host-based access control
+   is not desired, comment out HBA=1 in src/Makefile.global.
+ * changed regex handling to be uniform use of Henry Spencer's regex code
+   regardless of platform.  The regex code is included in the distribution
+ * added functions and operators for case-insensitive regular expressions.
+   The operators are ~* and !~*.
+ * pg_dump uses COPY instead of SELECT loop for better performance
+
+Bug fixes:
+ * fixed an optimizer bug that was causing core dumps when
+   functions calls were used in comparisons in the WHERE clause
+ * changed all uses of getuid to geteuid so that effective uids are used
+ * psql now returns non-zero status on errors when using -c
+ * applied public patches 1-14
+
+
+
+
+
+
+Release 1.0
+
+   
+   Release date
+   1995-09-05
+   
+
+
+Changes
+
+
+
+Copyright change:
+ * The copyright of Postgres 1.0 has been loosened to be freely modifiable
+   and modifiable for any purpose.  Please read the COPYRIGHT file.
+   Thanks to Professor Michael Stonebraker for making this possible.
+
+Incompatibilities:
+ *  date formats have to be MM-DD-YYYY (or DD-MM-YYYY if you're using
+   EUROPEAN STYLE).  This follows SQL-92 specs.
+ *  "delimiters" is now a key word
+
+Enhancements:
+ *  sql LIKE syntax has been added
+ *  copy command now takes an optional USING DELIMITER specification.
+   delimiters can be any single-character string.
+ *  IRIX 5.3 port has been added.
+   Thanks to Paul Walmsley and others.
+ *  updated pg_dump to work with new libpq
+ *  \d has been added psql
+   Thanks to Keith Parks
+ *  regexp performance for architectures that use POSIX regex has been
+   improved due to caching of precompiled patterns.
+   Thanks to Alistair Crooks
+ *  a new version of libpq++
+   Thanks to William Wanders
+
+Bug fixes:
+ *  arbitrary userids can be specified in the createuser script
+ *  \c to connect to other databases in psql now works.
+ *  bad pg_proc entry for float4inc() is fixed
+ *  users with usecreatedb field set can now create databases without
+   having to be usesuper
+ *  remove access control entries when the entry no longer has any
+   privileges
+ *  fixed non-portable datetimes implementation
+ *  added kerberos flags to the src/backend/Makefile
+ *  libpq now works with kerberos
+ *  typographic errors in the user manual have been corrected.
+ *  btrees with multiple index never worked, now we tell you they don't
+   work when you try to use them
+
+
+
+
+
+
+<productname>Postgres95</productname> Release 0.03
+
+   
+   Release date
+   1995-07-21
+   
+
+
+Changes
+
+
+Incompatible changes:
+ * BETA-0.3 IS INCOMPATIBLE WITH DATABASES CREATED WITH PREVIOUS VERSIONS
+   (due to system catalog changes and indexing structure changes).
+ * double-quote (") is deprecated as a quoting character for string literals;
+   you need to convert them to single quotes ('). 
+ * name of aggregates (eg. int4sum) are renamed in accordance with the
+   SQL standard (eg. sum).
+ * CHANGE ACL syntax is replaced by GRANT/REVOKE syntax.
+ * float literals (eg. 3.14) are now of type float4 (instead of float8 in
+   previous releases); you might have to do typecasting if you depend on it
+   being of type float8.  If you neglect to do the typecasting and you assign
+   a float literal to a field of type float8, you might get incorrect values
+   stored!
+ * LIBPQ has been totally revamped so that frontend applications
+   can connect to multiple backends
+ * the usesysid field in pg_user has been changed from int2 to int4 to
+   allow wider range of Unix user ids.
+ * the netbsd/freebsd/bsd o/s ports have been consolidated into a
+   single BSD44_derived port.  (thanks to Alistair Crooks)
+
+SQL standard-compliance (the following details changes that makes postgres95
+more compliant to the SQL-92 standard):
+ * the following SQL types are now built-in: smallint, int(eger), float, real,
+   char(N), varchar(N), date and time.
+
+   The following are aliases to existing postgres types:
+                smallint -> int2
+                integer, int -> int4
+                float, real  -> float4
+   char(N) and varchar(N) are implemented as truncated text types. In
+   addition, char(N) does blank-padding.
+ * single-quote (') is used for quoting string literals; '' (in addition to
+   \') is supported as means of inserting a single quote in a string
+ * SQL standard aggregate names (MAX, MIN, AVG, SUM, COUNT) are used
+   (Also, aggregates can now be overloaded, i.e. you can define your
+   own MAX aggregate to take in a user-defined type.)
+ * CHANGE ACL removed. GRANT/REVOKE syntax added.
+   - Privileges can be given to a group using the "GROUP" key word.
+        For example:
+                GRANT SELECT ON foobar TO GROUP my_group;
+        The key word 'PUBLIC' is also supported to mean all users.
+
+        Privileges can only be granted or revoked to one user or group
+        at a time.
+
+        "WITH GRANT OPTION" is not supported.  Only class owners can change
+        access control
+   - The default access control is to grant users readonly access.
+     You must explicitly grant insert/update access to users.  To change
+     this, modify the line in
+                src/backend/utils/acl.h
+     that defines ACL_WORLD_DEFAULT
+
+Bug fixes:
+ * the bug where aggregates of empty tables were not run has been fixed. Now,
+   aggregates run on empty tables will return the initial conditions of the
+   aggregates. Thus, COUNT of an empty  table will now properly return 0.
+   MAX/MIN of an empty table will return a row of value NULL.
+ * allow the use of \; inside the monitor
+ * the LISTEN/NOTIFY asynchronous notification mechanism now work
+ * NOTIFY in rule action bodies now work
+ * hash indexes work, and access methods in general should perform better.
+   creation of large btree indexes should be much faster.  (thanks to Paul
+   Aoki)
+
+Other changes and enhancements:
+ * addition of an EXPLAIN statement used for explaining the query execution
+   plan (eg. "EXPLAIN SELECT * FROM EMP" prints out the execution plan for
+   the query).
+ * WARN and NOTICE messages no longer have timestamps on them. To turn on
+   timestamps of error messages, uncomment the line in
+   src/backend/utils/elog.h:
+        /* define ELOG_TIMESTAMPS */
+ * On an access control violation, the message
+        "Either no such class or insufficient privilege"
+   will be given.  This is the same message that is returned when
+   a class is not found.  This dissuades non-privileged users from
+   guessing the existence of privileged classes.
+ * some additional system catalog changes have been made that are not
+   visible to the user.
+
+libpgtcl changes:
+ * The -oid option has been added to the "pg_result" tcl command.
+   pg_result -oid returns oid of the last row inserted.   If the
+   last command was not an INSERT, then pg_result -oid returns "".
+ * the large object interface is available as pg_lo* tcl commands:
+   pg_lo_open, pg_lo_close, pg_lo_creat, etc.
+
+Portability enhancements and New Ports:
+ * flex/lex problems have been cleared up.  Now, you should be able to use
+   flex instead of lex on any platforms.  We no longer make assumptions of
+   what lexer you use based on the platform you use.
+ * The Linux-ELF port is now supported.  Various configuration have been
+   tested:  The following configuration is known to work:
+        kernel 1.2.10, gcc 2.6.3, libc 4.7.2, flex 2.5.2, bison 1.24
+   with everything in ELF format,
+
+New utilities:
+ * ipcclean added to the distribution
+   ipcclean usually does not need to be run, but if your backend crashes
+   and leaves shared memory segments hanging around, ipcclean will
+   clean them up for you.
+
+New documentation:
+ * the user manual has been revised and libpq documentation added.
+
+
+
+
+
+
+<productname>Postgres95</productname> Release 0.02
+
+   
+   Release date
+   1995-05-25
+   
+
+
+Changes
+
+
+
+Incompatible changes:
+ * The SQL statement for creating a database is 'CREATE DATABASE' instead
+   of 'CREATEDB'. Similarly, dropping a database is 'DROP DATABASE' instead
+   of 'DESTROYDB'. However, the names of the executables 'createdb' and
+   'destroydb' remain the same.
+
+New tools:
+ * pgperl - a Perl (4.036) interface to Postgres95
+ * pg_dump - a utility for dumping out a postgres database into a
+        script file containing query commands. The script files are in a ASCII
+        format and can be used to reconstruct the database, even on other
+        machines and other architectures. (Also good for converting
+        a Postgres 4.2 database to Postgres95 database.)
+
+The following ports have been incorporated into postgres95-beta-0.02:
+ * the NetBSD port by Alistair Crooks
+ * the AIX port by Mike Tung
+ * the Windows NT port by Jon Forrest (more stuff but not done yet)
+ * the Linux ELF port by Brian Gallew
+
+The following bugs have been fixed in postgres95-beta-0.02:
+ * new lines not escaped in COPY OUT and problem with COPY OUT when first
+   attribute is a '.'
+ * cannot type return to use the default user id in createuser
+ * SELECT DISTINCT on big tables crashes
+ * Linux installation problems
+ * monitor doesn't allow use of 'localhost' as PGHOST
+ * psql core dumps when doing \c or \l
+ * the "pgtclsh" target missing from src/bin/pgtclsh/Makefile
+ * libpgtcl has a hard-wired default port number
+ * SELECT DISTINCT INTO TABLE hangs
+ * CREATE TYPE doesn't accept 'variable' as the internallength
+ * wrong result using more than 1 aggregate in a SELECT
+
+
+
+
+
+
+<productname>Postgres95</productname> Release 0.01
+
+   
+   Release date
+   1995-05-01
+   
+
+
+Initial release.
+
+
+
+
+  
+   Timing Results
+
+   
+    These timing results are from running the regression test with the commands
+
+    
+% cd src/test/regress
+% make all
+% time make runtest
+    
+   
+   
+    Timing under Linux 2.0.27 seems to have a roughly 5% variation from run
+    to run, presumably due to the scheduling vagaries of multitasking systems.
+   
+
+   
+    Version 6.5
+
+    
+     As has been the case for previous releases, timing between
+     releases is not directly comparable since new regression tests
+     have been added. In general, 6.5 is faster than previous
+     releases.
+    
+
+    
+     Timing with fsync() disabled:
+
+     
+  Time   System
+  02:00  Dual Pentium Pro 180, 224MB, UW-SCSI, Linux 2.0.36, gcc 2.7.2.3 -O2 -m486
+  04:38  Sparc Ultra 1 143MHz, 64MB, Solaris 2.6
+     
+    
+
+    
+     Timing with fsync() enabled:
+
+     
+  Time   System
+  04:21  Dual Pentium Pro 180, 224MB, UW-SCSI, Linux 2.0.36, gcc 2.7.2.3 -O2 -m486
+     
+
+     For the Linux system above, using UW-SCSI disks rather than (older) IDE
+     disks leads to a 50% improvement in speed on the regression test.
+    
+   
+
+
+Version 6.4beta
+
+
+The times for this release are not directly comparable to those for previous releases
+since some additional regression tests have been included.
+In general, however, 6.4 should be slightly faster than the previous release (thanks, Bruce!).
+
+
+
+  Time   System
+  02:26  Dual Pentium Pro 180, 96MB, UW-SCSI, Linux 2.0.30, gcc 2.7.2.1 -O2 -m486
+
+
+
+
+
+Version 6.3
+
+
+The times for this release are not directly comparable to those for previous releases
+since some additional regression tests have been included and some obsolete tests involving
+time travel have been removed.
+In general, however, 6.3 is substantially faster than previous releases (thanks, Bruce!).
+
+
+
+  Time   System
+  02:30  Dual Pentium Pro 180, 96MB, UW-SCSI, Linux 2.0.30, gcc 2.7.2.1 -O2 -m486
+  04:12  Dual Pentium Pro 180, 96MB, EIDE, Linux 2.0.30, gcc 2.7.2.1 -O2 -m486
+
+
+
+
+
+Version 6.1
+
+
+
+  Time   System
+  06:12  Pentium Pro 180, 32MB, EIDE, Linux 2.0.30, gcc 2.7.2 -O2 -m486
+  12:06  P-100, 48MB, Linux 2.0.29, gcc
+  39:58  Sparc IPC 32MB, Solaris 2.5, gcc 2.7.2.1 -O -g
+
+
+
+
+]]>
index ed6465021e6778ea23ae4f821b12f17d0c257315..d8813ff91259d0625ed4fc4ce0fbae54834be22c 100644 (file)
@@ -1,4 +1,4 @@
-
+
 
 
@@ -64,31991 +63,19 @@ do it for earlier branch release files.
    review, so each item is truly a community effort.
   
 
-  Release 8.4
-
-  
-   Release date
-   2009-??-??, ITEMS CURRENT AS OF 2009-04-08
-  
-
-  
-   Overview
-
-   
-    After many years of development, PostgreSQL has
-    become feature-complete in many areas.   This release shows a
-    targeted approach to adding features (e.g., authentication,
-    monitoring, space reuse), and adds capabilities defined in the
-    later SQL standards.  The major areas of enhancement are:
-   
-
-   
-
-    
-
-    
-     
-      Windowing Functions
-     
-    
-
-    
-     
-      Common Table Expressions and Recursive Joins
-     
-    
-
-    
-     
-      Default and variadic parameters for functions
-     
-    
-
-    
-     
-      Parallel Restore
-     
-    
-
-    
-     
-      Column Permissions
-     
-    
-
-    
-     
-      Per-database locale settings
-     
-    
-
-    
-     
-      Improved hash indexes
-     
-    
-
-    
-     
-      Improved join performance for EXISTS and NOT EXISTS queries
-     
-    
-
-    
-     
-      Easier-to-use Warm Standby
-     
-    
-
-    
-     
-      Automatic sizing of the Free Space Map
-     
-    
-
-    
-     
-      Visibility Map (greatly reduces vacuum overhead for slowly-changing tables)
-     
-    
-
-    
-     
-      Version-aware psql (backslash commands work against older servers)
-     
-    
-
-    
-     
-      Support SSL certificates for user authentication
-     
-    
-
-    
-     
-      Per-function runtime statistics
-     
-    
-
-    
-     
-      Easy editing of functions in psql
-     
-    
-
-    
-     
-      New contrib modules: pg_stat_statements, auto_explain, citext, btree_gin
-     
-    
-
-   
-
-   
-    The above items are explained in more detail in the sections below.
-   
-
-  
-
-  
-   Migration to Version 8.4
-
-   
-    A dump/restore using pg_dump is
-    required for those wishing to migrate data from any previous
-    release.
-   
-
-   
-    Observe the following incompatibilities:
-   
-
-   
-    General
-    
-
-     
-      
-       Use 64-bit integer datetimes by default (Neil Conway)
-      
-
-      
-       Previously this was selected by configure's
-       
-       the old behavior, build with 
-      
-     
-
-     
-      
-       Remove ipcclean utility command (Bruce)
-      
-
-      
-       The utility only worked on a few platforms.  Users should use
-       their operating system tools instead.
-      
-     
-
-    
-
-   
-
-   
-    Server Settings
-    
-
-     
-      
-       Change default setting for
-       log_min_messages to warning (previously
-       it was notice) to reduce log file volume (Tom)
-      
-     
-
-     
-      
-       Make debug_print_parse, debug_print_rewritten,
-       and debug_print_plan
-       output appear at LOG message level, not
-       DEBUG1 as formerly (Tom)
-      
-     
-
-     
-      
-       Make debug_pretty_print default to on (Tom)
-      
-     
-
-     
-      
-       Remove explain_pretty_print parameter (no longer needed) (Tom)
-      
-     
-
-     
-      
-       Make log_temp_files settable by superusers only, like other
-       logging options (Simon Riggs)
-      
-     
-
-     
-      
-       Remove automatic appending of the epoch timestamp when no %
-       escapes are present in log_filename (Robert Haas)
-      
-
-      
-       This change was made because some users wanted a fixed log filename,
-       for use with an external log rotation tool.
-      
-     
-
-     
-      
-       Remove log_restartpoints from recovery.conf;
-       instead use log_checkpoints (Simon)
-      
-     
-
-     
-      
-       Remove support for the (insecure) crypt authentication method
-       (Magnus)
-      
-
-      
-       This effectively obsoletes pre-PostgreSQL 7.2 client
-       libraries, as there is no longer any non-plaintext password method that
-       they can use.
-      
-     
-
-     
-      
-       Remove krb_realm and krb_server_hostname;
-       these are now set in pg_hba.conf instead (Magnus)
-      
-     
-
-     
-      
-       There are also significant changes in 
-       linkend="release-8-4-pg-hba-conf">pg_hba.conf,
-       as described below.
-      
-     
-
-    
-
-   
-
-   
-    Queries
-
-    
-
-     
-      
-       Change TRUNCATE and LOCK to
-       apply to child tables of the specified table(s) (Peter)
-      
-
-      
-       These commands now accept an ONLY option that prevents
-       processing child tables; this option must be used if the old
-       behavior is needed.
-      
-     
-
-     
-      
-       SELECT DISTINCT and
-       UNION/INTERSECT/EXCEPT
-       no longer always produce sorted output (Tom)
-      
-
-      
-       Previously, these types of queries always removed duplicate rows
-       by means of Sort/Unique processing (i.e., sort then remove adjacent
-       duplicates).  Now they can be implemented by hashing, which will not
-       produce sorted output.  If an application relied on the output being
-       in sorted order, the recommended fix is to add an ORDER BY
-       clause.  As a short-term workaround, the previous behavior can be
-       restored by disabling enable_hashagg, but that is a very
-       performance-expensive fix.  SELECT DISTINCT ON never uses
-       hashing, however, so its behavior is unchanged.
-      
-     
-
-     
-      
-       Force child tables to inherit CHECK constraints from parents
-       (Alex Hunsaker, Nikhil Sontakke, Tom)
-      
-
-      
-       Formerly it was possible to drop such a constraint from a child
-       table, allowing rows that violate the constraint to be visible
-       when scanning the parent table.  This was deemed inconsistent,
-       as well as contrary to SQL standard.
-      
-     
-
-     
-      
-       Disallow negative LIMIT or OFFSET
-       values, rather than treating them as zero (Simon)
-      
-     
-
-     
-      
-       Disallow LOCK TABLE outside a transaction block
-       (Tom)
-      
-
-      
-       Such an operation is useless because the lock would be released
-       immediately.
-      
-     
-
-     
-      
-       Sequences now contain an additional start_value column
-       (Zoltan Boszormenyi)
-      
-
-      
-       This supports ALTER SEQUENCE ... RESTART.
-      
-     
-
-    
-
-   
-
-
-   
-    Functions and Operators
-
-    
-
-     
-      
-       Make numeric zero raised to a fractional power return
-       0, rather than throwing an error, and make
-       numeric zero raised to the zero power return 1,
-       rather than error (Bruce)
-      
-
-      
-       This matches the longstanding float8 behavior.
-      
-     
-
-     
-      
-       Allow unary minus of floating-point values to produce minus zero (Tom)
-      
-
-      
-       The changed behavior is more IEEE-standard
-       compliant.
-      
-     
-
-     
-      
-       Throw an error if an escape character is the last character in
-       a LIKE pattern (i.e., it has nothing to escape) (Tom)
-      
-
-      
-       Previously, such an escape character was silently ignored,
-       thus possibly masking application logic errors.
-      
-     
-
-     
-      
-       Remove ~=~ and ~<>~ operators
-       formerly used for LIKE index comparisons (Tom)
-      
-
-      
-       Pattern indexes now use the regular equality operator.
-      
-     
-
-     
-      
-       xpath() now passes its arguments to libxml
-       without any changes (Andrew)
-      
-
-      
-       This means that the XML argument must be a well-formed XML document.
-       The previous coding attempted to allow XML fragments, but it did not
-       work well.
-      
-     
-
-     
-      
-       Make xmlelement() format attribute values just like
-       content values (Peter)
-      
-
-      
-       Previously, attribute values were formatted according to the
-       normal SQL output behavior, which is sometimes at odds with
-       XML rules.
-      
-     
-
-     
-      
-       Adopt a faster algorithm for hash functions (Kenneth Marshall,
-       based on work of Bob Jenkins)
-      
-
-      
-       Many of the built-in hash functions now deliver different results on
-       little-endian and big-endian platforms.
-      
-     
-
-    
-
-    
-     Temporal Functions and Operators
-
-     
-
-      
-       
-        DateStyle no longer controls interval output
-        formatting; instead there is a new variable IntervalStyle
-        (Ron Mayer)
-       
-      
-
-      
-       
-        Improve consistency of handling of fractional seconds in
-        timestamp and interval output (Ron Mayer)
-       
-
-       
-        This may result in displaying a different number of fractional
-        digits than before, or rounding instead of truncating.
-       
-      
-
-      
-       
-        Make to_char()'s localized month/day names depend
-        on LC_TIME, not LC_MESSAGES (Euler
-        Taveira de Oliveira)
-       
-      
-
-      
-       
-        Cause to_date() and to_timestamp()
-        to more consistently report errors for invalid input (Brendan
-        Jurd)
-       
-
-       
-        Previous versions would often ignore or silently misread input
-        that did not match the format string.  Such cases will now
-        result in an error.
-       
-      
-
-      
-       
-        Fix to_timestamp() to not require upper/lower case
-        matching for meridian (AM/PM) and era
-        (BC/AD) format designations  (Brendan
-        Jurd)
-       
-
-       
-        For example, input value ad now matches the format
-        string AD.
-       
-      
-
-     
-
-    
-
-   
-
-  
-
-  
-   Changes
-
-   
-    Below you will find a detailed account of the changes between
-    PostgreSQL 8.4 and the previous major
-    release.
-   
-
-   
-    Performance
-    
-
-     
-      
-       Improve optimizer statistics calculations (Jan Urbanski, Tom)
-      
-
-      
-       In particular, estimates for full-text-search operators are
-       greatly improved.
-      
-     
-
-     
-      
-       Allow SELECT DISTINCT and
-       UNION/INTERSECT/EXCEPT to
-       use hashing (Tom)
-      
-
-      
-       This means that these types of queries no longer automatically
-       produce sorted output.
-      
-     
-
-     
-      
-       Create explicit concepts of semi-joins and anti-joins (Tom)
-      
-
-      
-       This work formalizes our previous ad-hoc treatment of IN
-       (SELECT ...) clauses, and extends it to EXISTS and
-       NOT EXISTS clauses.  It should result in significantly
-       better planning of EXISTS and NOT EXISTS
-       queries.  In general, logically equivalent IN and
-       EXISTS clauses should now have similar performance,
-       whereas previously IN often won.
-      
-     
-
-     
-      
-       Improve optimization of sub-selects beneath outer joins (Tom)
-      
-
-      
-       Formerly, a sub-select or view could not be optimized very well if it
-       appeared within the nullable side of an outer join and contained
-       non-strict expressions (for instance, constants) in its result list.
-      
-     
-
-     
-      
-       Improve the performance of text_position() and
-       related functions by using Boyer-Moore-Horspool searching (David
-       Rowley)
-      
-
-      
-       This is particularly helpful for long search patterns.
-      
-     
-
-     
-      
-       Reduce I/O load of writing the statistics collection file
-       by writing the file only when requested (Martin Pihlak)
-      
-     
-
-     
-      
-       Improve performance for bulk inserts (Robert Haas, Simon)
-      
-     
-
-     
-      
-       Increase the default value of default_statistics_target
-       from 10 to 100 (Greg Sabino Mullane,
-       Tom)
-      
-
-      
-       The maximum value was also increased from 1000 to
-       10000.
-      
-     
-
-     
-      
-       Perform constraint_exclusion checking by default
-       in queries involving inheritance or UNION ALL (Tom)
-      
-
-      
-       A new constraint_exclusion setting,
-       partition, was added to specify this behavior.
-      
-     
-
-     
-      
-       Allow I/O read-ahead for bitmap index scans (Greg Stark)
-      
-
-      
-       The amount of read-ahead is controlled by
-       effective_io_concurrency.  This feature is available only
-       if the kernel has posix_fadvise() support.
-      
-     
-
-     
-      
-       Inline simple set-returning SQL functions in
-       FROM clauses (Richard Rowell)
-      
-     
-
-     
-      
-       Improve performance of multi-batch hash joins by providing a special
-       case for join key values that are especially common in the outer
-       relation (Bryce Cutt, Ramon Lawrence)
-      
-     
-
-     
-      
-       Reduce volume of temporary data in multi-batch hash joins
-       by suppressing physical tlist optimization (Michael
-       Henderson, Ramon Lawrence)
-      
-     
-
-     
-      
-       Avoid waiting for idle-in-transaction sessions during
-       CREATE INDEX CONCURRENTLY (Simon)
-      
-     
-
-     
-      
-       Improve performance of shared cache invalidation (Tom)
-      
-     
-
-    
-
-   
-
-   
-    Server
-
-    
-     Settings
-
-     
-
-      
-       
-        Convert many postgresql.conf settings to enumerated
-        values so that pg_settings can display the valid
-        values (Magnus)
-       
-      
-
-      
-       
-        Add cursor_tuple_fraction parameter to control the
-        fraction of a cursor's rows that the planner assumes will be
-        fetched (Robert Hell)
-       
-      
-
-      
-       
-        Allow underscores in the names of custom variable
-        classes in postgresql.conf (Tom)
-       
-      
-
-     
-
-    
-
-    
-     Authentication
-     
-
-      
-       
-        Report appropriate error message for combination of MD5
-        authentication and db_user_namespace enabled (Bruce)
-       
-      
-
-      
-       
-        Support regular expressions in pg_ident.conf
-        (Magnus)
-       
-      
-
-      
-       
-        Allow Kerberos/GSSAPI parameters
-        to be changed without restarting the postmaster (Magnus)
-       
-      
-
-     
-
-    
-
-    
-     <filename>pg_hba.conf</>
-     
-
-      
-       
-        Parse pg_hba.conf fully when it is loaded,
-        so that errors are reported immediately (Magnus)
-       
-
-       
-        Previously, most errors in the file wouldn't be detected until clients
-        tried to connect, so an erroneous file could render the system
-        unusable.  With the new behavior, if an error is detected during
-        reload then the bad file is rejected and the postmaster continues
-        to use its old copy.
-       
-      
-
-      
-       
-        Show all parsing errors in pg_hba.conf instead of
-        aborting after the first one (Selena Deckelmann)
-       
-      
-
-      
-       
-        Remove the ident sameuser option, instead making that
-        behavior the default if no usermap is specified (Magnus)
-       
-      
-
-      
-       
-        Change all authentication options to use name=value
-        syntax (Magnus)
-       
-      
-
-      
-       
-        Allow a usermap parameter for all external authentication methods
-        (Magnus)
-       
-
-       
-        Previously a usermap was only supported for ident
-        authentication.
-       
-      
-
-      
-       
-        Add clientcert option to control requesting of a
-        client certificate (Magnus)
-       
-
-       
-        Previously this was controlled by the presence of a root
-        certificate file in the server's data directory.
-       
-      
-
-      
-       
-        Add cert authentication method to allow
-        user authentication via SSL certificates
-        (Magnus)
-       
-
-       
-        Previously SSL certificates could only verify that
-        the client had access to a certificate, not authenticate a
-        user.
-       
-      
-
-      
-       
-        Allow krb5, gssapi and sspi
-        realm and krb5 host settings to be specified in
-        pg_hba.conf (Magnus)
-       
-
-       
-        These override the settings in postgresql.conf.
-       
-      
-
-      
-       
-        Add include_realm parameter for krb5,
-        gssapi, and sspi methods (Magnus)
-       
-
-       
-        This allows identical usernames from different realms to be
-        authenticated as different database users using usermaps.
-       
-      
-
-      
-       
-        Support ident authentication over Unix-domain sockets
-        on Solaris (Garick Hamlin)
-       
-      
-
-     
-
-    
-
-    
-     Continuous Archiving
-     
-
-      
-       
-        Provide an option to pg_start_backup() to force its
-        implied checkpoint to finish as quickly as possible (Tom)
-       
-
-       
-        The default behavior avoids excess I/O consumption, but that is
-        pointless if no concurrent query activity is going on.
-       
-      
-
-      
-       
-        Make pg_stop_backup() wait for modified WAL
-        files to be archived (Simon)
-       
-
-       
-        This guarantees that the backup is valid at the time
-        pg_stop_backup() completes.
-       
-      
-
-      
-       
-        Delay smart shutdown while a continuous archiving base backup
-        is in progress (Laurenz Albe)
-       
-      
-
-      
-       
-        Cancel a continuous archiving base backup if fast shutdown
-        is requested (Laurenz Albe)
-       
-      
-
-      
-       
-        Allow recovery.conf boolean variables to take the
-        same range of string values as postgresql.conf
-        boolean variables
-        (Bruce)
-       
-      
-
-     
-
-    
-
-    
-     Monitoring
-     
-
-      
-       
-        Add pg_conf_load_time() to report when
-        the PostgreSQL configuration files were last loaded
-        (George Gensure)
-       
-      
-
-      
-       
-        Add pg_terminate_backend() to safely terminate a
-        backend (the SIGTERM signal works also) (Tom, Bruce)
-       
-
-       
-        While it's always been possible to SIGTERM a single
-        backend, this was previously considered unsupported; and testing
-        of the case found some bugs that are now fixed.
-       
-      
-
-      
-       
-        Add ability to track user-defined functions' call counts and
-        runtimes (Martin Pihlak)
-       
-
-       
-        Function statistics appear in a new system view,
-        pg_stat_user_functions.  Tracking is controlled
-        by the new parameter track_functions.
-       
-      
-
-      
-       
-        Allow specification of the maximum query string size in
-        pg_stat_activity via new
-        track_activity_query_size parameter (Thomas Lee)
-       
-      
-
-      
-       
-        Increase the maximum line length sent to syslog, in
-        hopes of improving performance (Tom)
-       
-      
-
-      
-       
-        Add read-only configuration variables segment_size,
-        wal_block_size, and wal_segment_size
-        (Bernd Helmle)
-       
-      
-
-      
-       
-        When reporting a deadlock, report the text of all queries involved
-        in the deadlock to the server log  (Itagaki Takahiro)
-       
-      
-
-      
-       
-        Add pg_stat_get_activity(pid) function to return
-        information about a specific process id (Magnus)
-       
-      
-
-      
-       
-        Allow the location of the server's statistics file to be specified
-        via stats_temp_directory (Magnus)
-       
-
-       
-        This allows the statistics file to be placed in a
-        RAM-resident directory to reduce I/O requirements.
-        On startup/shutdown, the file is copied to its traditional location
-        ($PGDATA/global/) so it is preserved across restarts.
-       
-      
-
-     
-
-    
-
-   
-
-   
-    Queries
-    
-
-     
-      
-       Add support for WINDOW functions (Hitoshi Harada)
-      
-     
-
-     
-      
-       Add support for WITH clauses (CTEs), including WITH
-       RECURSIVE (Yoshiyuki Asaba, Tatsuo Ishii, Tom)
-      
-     
-
-     
-      
-       Add TABLE command (Peter)
-      
-
-      
-       TABLE tablename is a SQL standard short-hand for
-       SELECT * FROM tablename.
-      
-     
-
-     
-      
-       Allow AS to be optional when specifying a
-       SELECT (or RETURNING) column output
-       label (Hiroshi Saito)
-      
-
-      
-       This works so long as the column label is not any
-       PostgreSQL keyword; otherwise AS is still
-       needed.
-      
-     
-
-     
-      
-       Support set-returning functions in SELECT result lists
-       even for functions that return their result via a tuplestore (Tom)
-      
-
-      
-       In particular, this means that functions written in PL/PgSQL
-       and other PL languages can now be called this way.
-      
-     
-
-     
-      
-       Support set-returning functions in the output of aggregation
-       and grouping queries (Tom)
-      
-     
-
-     
-      
-       Allow SELECT FOR UPDATE/SHARE to work
-       on inheritance trees (Tom)
-      
-     
-
-     
-      
-       Add infrastructure for SQL/MED (Martin Pihlak,
-       Peter)
-      
-
-      
-       There are no remote or external SQL/MED capabilities
-       yet, but this change provides a standardized and future-proof
-       system for managing connection information for modules like
-       dblink and plproxy.
-      
-     
-
-     
-      
-       Invalidate cached plans when referenced schemas, functions, operators,
-       or operator classes are modified (Martin Pihlak, Tom)
-      
-
-      
-       This improves the system's ability to respond to on-the-fly
-       DDL changes.
-      
-     
-     
-      
-       Allow comparison of composite types and allow arrays of
-       anonymous composite types (Tom)
-      
-
-      
-       This allows constructs such as
-       row(1, 1.1) = any (array[row(7, 7.7), row(1, 1.0)]).
-       This is particularly useful in recursive queries.
-      
-     
-
-     
-      
-       Add support for Unicode string literal and identifier specifications
-       using code points, e.g. U&'d\0061t\+000061'
-       (Peter)
-      
-     
-
-     
-      
-       Improve the parser's ability to report error locations (Tom)
-      
-
-      
-       An error location is now reported for many semantic errors,
-       such as mismatched datatypes, that previously could not be localized.
-      
-     
-
-    
-
-    
-     <command>TRUNCATE</>
-     
-
-      
-       
-        Support statement-level ON TRUNCATE triggers (Simon)
-       
-      
-
-      
-       
-        Add RESTART/CONTINUE IDENTITY options
-        for TRUNCATE TABLE
-        (Zoltan Boszormenyi)
-       
-
-       
-        The start value of a sequence can be changed by ALTER
-        SEQUENCE START WITH.
-       
-      
-
-      
-       
-        Allow TRUNCATE tab1, tab1 to succeed (Bruce)
-       
-      
-
-      
-       
-        Add a separate TRUNCATE permission (Robert Haas)
-       
-      
-
-     
-
-    
-
-    
-     <command>EXPLAIN</>
-     
-
-      
-       
-        Make EXPLAIN VERBOSE show the output columns of each
-        plan node (Tom)
-       
-
-       
-        Previously EXPLAIN VERBOSE output an internal
-        representation of the query plan.  (That behavior is now
-        available via debug_print_plan.)
-       
-      
-
-      
-       
-        Make EXPLAIN identify subplans and initplans with
-        individual labels (Tom)
-       
-      
-
-      
-       
-        Make EXPLAIN honor debug_print_plan (Tom)
-       
-      
-
-      
-       
-        Allow EXPLAIN on CREATE TABLE AS (Peter)
-       
-      
-
-     
-
-    
-
-    
-     <literal>LIMIT</>/<literal>OFFSET</>
-     
-
-      
-       
-        Allow sub-selects in LIMIT and OFFSET (Tom)
-       
-      
-
-      
-       
-        Add SQL-standard syntax for
-        LIMIT/OFFSET capabilities (Peter)
-       
-
-       
-        To wit,
-        OFFSET num {ROW|ROWS} FETCH {FIRST|NEXT} [num] {ROW|ROWS}
-        ONLY.
-       
-      
-
-     
-
-    
-
-   
-
-   
-    Object Manipulation
-    
-
-     
-      
-       Add support for column-level privileges (Stephen Frost, KaiGai
-       Kohei)
-      
-     
-
-     
-      
-       Refactor multi-object DROP operations to reduce the
-       need for CASCADE (Alex Hunsaker)
-      
-
-      
-       For example, if table B has a dependency on table
-       A, the command DROP TABLE A, B no longer
-       requires the CASCADE option.
-      
-     
-
-     
-      
-       Fix various problems with concurrent DROP commands
-       by ensuring that locks are taken before we begin to drop dependencies
-       of an object (Tom)
-      
-     
-
-     
-      
-       Improve reporting of dependencies during DROP
-       commands (Tom)
-      
-     
-
-     
-      
-       Add WITH [NO] DATA clause to CREATE TABLE
-       AS, per the SQL standard (Peter, Tom)
-      
-     
-
-     
-      
-       Add support for user-defined I/O conversion casts (Heikki)
-      
-     
-
-     
-      
-       Allow CREATE AGGREGATE to use an internal
-       transition datatype (Tom)
-      
-     
-
-     
-      
-       Add LIKE clause to CREATE TYPE (Tom)
-      
-
-      
-       This simplifies creation of data types that use the same internal
-       representation as an existing type.
-      
-     
-
-     
-      
-       Allow specification of the type category and preferred
-       status for user-defined base types (Tom)
-      
-
-      
-       This allows more control over the coercion behavior of user-defined
-       types.
-      
-     
-
-     
-      
-       Allow CREATE OR REPLACE VIEW to add columns to the
-       end of a view (Robert Haas)
-      
-     
-
-    
-
-    
-     <command>ALTER</>
-     
-
-      
-       
-        Add ALTER TYPE RENAME (Petr Jelinek)
-       
-      
-
-      
-       
-        Add ALTER SEQUENCE ... RESTART (with no parameter) to
-        reset a sequence to its initial value (Zoltan Boszormenyi)
-       
-      
-
-      
-       
-        Modify the ALTER TABLE syntax to allow all reasonable
-        combinations for tables, indexes, sequences, and views (Tom)
-       
-
-       
-        This change allows the following new syntaxes:
-
-        
-         
-          
-           ALTER SEQUENCE OWNER TO
-          
-         
-         
-          
-           ALTER VIEW ALTER COLUMN SET/DROP DEFAULT
-          
-         
-         
-          
-           ALTER VIEW OWNER TO
-          
-         
-         
-          
-           ALTER VIEW SET SCHEMA
-          
-         
-        
-
-        There is no actual new functionality here, but formerly
-        you had to say ALTER TABLE to do these things,
-        which was confusing.
-       
-      
-
-      
-       
-        Add support for the syntax ALTER TABLE ... ALTER COLUMN
-        ... SET DATA TYPE (Peter)
-       
-
-       
-        This is SQL-standard syntax for functionality that
-        was already supported.
-       
-      
-
-      
-       
-        Make ALTER TABLE SET WITHOUT OIDS rewrite the table
-        to physically remove OID values (Tom)
-       
-
-       
-        Also, add ALTER TABLE SET WITH OIDS to rewrite the
-        table to add OIDs.
-       
-      
-
-     
-
-    
-
-    
-     Database Manipulation
-     
-
-      
-       
-        Improve reporting of
-        CREATE/DROP/RENAME DATABASE
-        failure when uncommitted prepared transactions are the cause
-        (Tom)
-       
-      
-
-      
-       
-        Make LC_COLLATE and LC_CTYPE into
-        per-database settings (Radek Strnad, Heikki)
-       
-
-       
-        This makes collation similar to encoding, which was always
-        configurable per database.
-       
-      
-
-      
-       
-        Improve checks that the database encoding, collation
-        (LC_COLLATE), and character classes
-        (LC_CTYPE) match (Heikki)
-       
-      
-
-      
-       
-        Add ALTER DATABASE SET TABLESPACE to move a database
-        to a new tablespace (Guillaume Lelarge, Bernd Helmle)
-       
-      
-
-     
-
-    
-
-   
-
-   
-    Utility Operations
-
-    
-
-     
-      
-       Add a VERBOSE option to the CLUSTER command and
-       clusterdb (Jim Cox)
-      
-     
-
-     
-      
-       Decrease memory requirements for recording pending trigger
-       events (Tom)
-      
-     
-
-    
-
-    
-     Indexes
-     
-
-      
-       
-        Dramatically improve the speed of building and accessing hash
-        indexes (Tom Raney, Shreya Bhargava)
-       
-
-       
-        This allows hash indexes to be sometimes faster than btree
-        indexes.  However, hash indexes are still not crash-safe.
-       
-      
-
-      
-       
-        Make hash indexes store only the hash code, not the full value of
-        the indexed column (Xiao Meng)
-       
-
-       
-        This greatly reduces the size of hash indexes for long indexed
-        values, improving performance.
-       
-      
-
-      
-       
-        Implement fast update option for GIN indexes (Teodor, Oleg)
-       
-
-       
-        This option greatly improves update speed at a small penalty in search
-        speed.
-       
-      
-
-      
-       
-        xxx_pattern_ops indexes can now be used for simple
-        equality comparisons, not only for LIKE (Tom)
-       
-      
-
-     
-
-    
-
-    
-     Full Text Indexes
-     
-
-      
-       
-        Remove the requirement to use @@@ when doing
-        GIN weighted lookups on full text indexes (Tom, Teodor)
-       
-
-       
-        The normal @@ text search operator can be used
-        instead.
-       
-      
-
-      
-       
-        Add an optimizer selectivity function for @@ text
-        search operations (Jan Urbanski)
-       
-      
-
-      
-       
-        Allow prefix matching in full text searches (Teodor Sigaev,
-        Oleg Bartunov)
-       
-      
-
-      
-       
-        Support multi-column GIN indexes (Teodor Sigaev)
-       
-      
-
-      
-       
-        Improve support for Nepali language and Devanagari alphabet (Teodor)
-       
-      
-
-     
-
-    
-
-    
-     <command>VACUUM</>
-     
-
-      
-       
-        Track free space in separate per-relation fork files (Heikki)
-       
-
-       
-        Free space discovered by VACUUM is now recorded in
-        *_fsm files, rather than in a fixed-sized shared memory
-        area.  The max_fsm_pages and max_fsm_relations
-        settings have been removed, greatly simplifying administration of
-        free space management.
-       
-      
-
-      
-       
-        Add a visibility map to track pages that do not require
-        vacuuming (Heikki)
-       
-
-       
-        This allows VACUUM to avoid scanning all of
-        a table when only a portion of the table needs vacuuming.
-        The visibility map is stored in per-relation fork files.
-       
-      
-
-      
-       
-        Add vacuum_freeze_table_age parameter to control
-        when VACUUM should ignore the visibility map and
-        do a full table scan to freeze tuples (Heikki)
-       
-      
-
-      
-       
-        Track transaction snapshots more carefully (Alvaro)
-       
-
-       
-        This improves VACUUM's ability to reclaim space
-        in the presence of long-running transactions.
-       
-      
-
-      
-       
-        Add ability to specify per-relation autovacuum and TOAST
-        parameters in CREATE TABLE (Alvaro, Euler Taveira de
-        Oliveira)
-       
-
-       
-        Autovacuum options used to be stored in a system table.
-       
-      
-
-      
-       
-        Add --freeze option to vacuumdb
-        (Bruce)
-       
-      
-
-     
-
-    
-
-   
-
-   
-    Data Types
-    
-
-     
-      
-       Add a CaseSensitive option for text search synonym
-       dictionaries (Simon)
-      
-     
-
-     
-      
-       Improve the precision of NUMERIC division (Tom)
-      
-     
-
-     
-      
-       Add basic arithmetic operators for int2 with int8
-       (Tom)
-      
-
-      
-       This eliminates the need for explicit casting in some situations.
-      
-     
-
-     
-      
-       Allow UUID input to accept an optional hyphen after
-       every fourth digit (Robert Haas)
-      
-     
-
-     
-      
-       Allow on/off as input for the boolean data type
-       (Itagaki Takahiro)
-      
-     
-
-     
-      
-       Allow spaces around NaN in the input string for
-       type numeric (Sam Mason)
-      
-     
-
-    
-
-    
-     Temporal Data Types
-     
-
-      
-       
-        Reject year 0 BC and years 000 and
-        0000 (Tom)
-       
-
-       
-        Previously these were interpreted as 1 BC.
-        (Note: years 0 and 00 are still assumed to be
-        the year 2000.)
-       
-      
-
-      
-       
-        Include SGT (Singapore time) in the default list of
-        known time zone abbreviations (Tom)
-       
-      
-
-      
-       
-        Support infinity and -infinity as
-        values of type date (Tom)
-       
-      
-
-      
-       
-        Make parsing of interval literals more standard-compliant (Tom)
-       
-
-       
-        For example, INTERVAL '1' YEAR now does what it's
-        supposed to.
-       
-      
-
-      
-       
-        Allow interval fractional-seconds precision to be specified
-        after the second keyword, for SQL standard
-        compliance (Tom)
-       
-
-       
-        Formerly the precision had to be specified after the keyword
-        interval.  (For backwards compatibility, this syntax is still
-        supported, though deprecated.)  Data type definitions will now be
-        output using the standard format.
-       
-      
-
-      
-       
-        Support the IS0 8601 interval syntax (Ron
-        Mayer, Kevin Grittner)
-       
-
-       
-        For example, INTERVAL 'P1Y2M3DT4H5M6.7S' is now
-        supported.
-       
-      
-
-      
-       
-        Add IntervalStyle parameter
-        which controls how interval values are output (Ron Mayer)
-       
-
-       
-        Valid values are:  postgres, postgres_verbose,
-        sql_standard, iso_8601.  This setting also
-        controls the handling of negative interval input when only
-        some fields have positive/negative designations.
-       
-      
-
-      
-       
-        Improve consistency of handling of fractional seconds in
-        timestamp and interval output (Ron Mayer)
-       
-      
-
-     
-
-    
-
-    
-     Arrays
-     
-
-      
-       
-        Improve the handling of casts applied to ARRAY[]
-        constructs, such as ARRAY[...]::integer[]
-        (Brendan Jurd)
-       
-
-       
-        Formerly PostgreSQL attempted to determine a data type
-        for the ARRAY[] construct without reference to the ensuing
-        cast.  This could fail unnecessarily in many cases, in particular when
-        the ARRAY[] construct was empty or contained only
-        ambiguous entries such as NULL.  Now the cast is consulted
-        to determine the type that the array elements must be.
-       
-      
-
-      
-       
-        Make SQL-syntax ARRAY dimensions optional
-        to match the SQL standard (Peter)
-       
-      
-
-      
-       
-        Add array_ndims() to return the number
-        of dimensions of an array (Robert Haas)
-       
-      
-
-      
-       
-        Add array_length() to return the length
-        of an array for a specified dimension (Jim Nasby, Robert
-        Haas, Peter Eisentraut)
-       
-      
-
-      
-       
-        Add aggregate function array_agg(), which
-        returns all aggregated values as a single array (Robert Haas,
-        Jeff Davis, Peter)
-       
-      
-
-      
-       
-        Add unnest(), which converts an array to
-        individual row values (Tom)
-       
-
-       
-        This is the opposite of array_agg().
-       
-      
-
-      
-       
-        Add array_fill() to create arrays initialized with
-        a value (Pavel Stehule)
-       
-      
-
-      
-       
-        Add generate_subscripts() to simplify generating
-        the range of an array's subscripts (Pavel Stehule)
-       
-      
-
-     
-
-    
-
-    
-     Wide-Value Storage (<acronym>TOAST</>)
-     
-
-      
-       
-        Consider TOAST compression on values as short as
-        32 bytes (previously 256 bytes) (Greg Stark)
-       
-      
-
-      
-       
-        Require 25% minimum space savings before using TOAST
-        compression (previously 20% for small values and any-savings-at-all
-        for large values) (Greg)
-       
-      
-
-      
-       
-        Improve TOAST heuristics for rows that have a mix of large
-        and small toastable fields, so that we prefer to push large values out
-        of line and don't compress small values unnecessarily (Greg, Tom)
-       
-      
-
-     
-
-    
-
-   
-
-   
-    Functions
-    
-
-     
-      
-       Document that setseed() allows values from
-       -1 to 1 (not just 0 to
-       1), and enforce the valid range (Kris Jurka)
-      
-     
-
-     
-      
-       Add server-side function lo_import(filename, oid)
-       (Tatsuo)
-      
-     
-
-     
-      
-       Add quote_nullable(), which behaves like
-       quote_literal() but returns the string NULL for
-       a null argument (Brendan Jurd)
-      
-     
-
-     
-      
-       Improve full text search headline() function to
-       allow extracting several fragments of text (Sushant Sinha)
-      
-     
-
-     
-      
-       Add suppress_redundant_updates_trigger() trigger
-       function to avoid overhead for non-data-changing updates (Andrew)
-      
-     
-
-     
-      
-       Add div(numeric, numeric) to perform numeric
-       division without rounding (Tom)
-      
-     
-
-     
-      
-       Add timestamp and timestamptz versions of
-       generate_series() (Hitoshi Harada)
-      
-     
-
-    
-
-    
-     Object Information Functions
-     
-
-      
-       
-        Implement current_query() for use by functions
-        that need to know the currently running query (Tomas Doran)
-       
-      
-
-      
-       
-        Add pg_get_keywords() to return a list of the
-        parser keywords (Dave Page)
-       
-      
-
-      
-       
-        Add pg_get_functiondef() to see a function's
-        definition (Abhijit Menon-Sen)
-       
-      
-
-      
-       
-        Modify pg_relation_size() to use regclass
-        (Heikki)
-       
-
-       
-        pg_relation_size(data_type_name) no longer works.
-       
-      
-
-      
-       
-        Add boot_val and reset_val columns to
-        pg_settings output (Greg Smith)
-       
-      
-
-      
-       
-        Add source file name and line number columns to
-        pg_settings output for variables set in a configuration
-        file (Magnus, Alvaro)
-       
-
-       
-        For security reasons, these columns are only visible to superusers.
-       
-      
-
-      
-       
-        Add support for CURRENT_CATALOG,
-        CURRENT_SCHEMA, SET CATALOG, SET
-        SCHEMA (Peter)
-       
-
-       
-        These provide SQL-standard syntax for existing features.
-       
-      
-
-      
-       
-        Add pg_typeof() which returns the data type
-        of any value (Brendan Jurd)
-       
-      
-
-      
-       
-        Make version() return information about whether
-        the server is a 32- or 64-bit binary (Bruce)
-       
-      
-
-      
-       
-        Fix the behavior of information schema columns
-        is_insertable_into and is_updatable to
-        be consistent (Peter)
-       
-      
-
-      
-       
-        Convert remaining builtin set-returning functions to use
-        OUT parameters (Jaime Casanova)
-       
-
-       
-        This makes it possible to call these functions without specifying
-        a column list:  pg_show_all_settings(),
-        pg_lock_status(), pg_prepared_xact(),
-        pg_prepared_statement(), pg_cursor()
-       
-      
-
-      
-       
-        Make pg_*_is_visible() and
-        has_*_privilege() functions return NULL
-        for invalid OIDs, rather than reporting an error (Tom)
-       
-      
-
-      
-       
-        Extend has_*_privilege() functions to allow inquiring
-        about the OR of multiple privileges in one call (Stephen
-        Frost, Tom)
-       
-      
-
-      
-       
-        Add has_column_privilege() and
-        has_any_column_privilege() functions (Stephen
-        Frost, Tom)
-       
-      
-
-     
-
-    
-
-    
-     Function Creation
-     
-
-      
-       
-        Support variadic functions (functions with a variable number
-        of arguments) (Pavel Stehule)
-       
-
-       
-        Only trailing arguments can be optional, and they all must be
-        of the same data type.
-       
-      
-
-      
-       
-        Support default values for function arguments (Pavel Stehule)
-       
-      
-
-      
-       
-        Add CREATE FUNCTION ... RETURNS TABLE clause (Pavel
-        Stehule)
-       
-      
-
-      
-       
-        Allow SQL-language functions to return the output
-        of an INSERT/UPDATE/DELETE
-        RETURNING clause (Tom)
-       
-      
-
-     
-
-    
-
-    
-     PL/PgSQL Server-Side Language
-     
-
-      
-       
-        Support EXECUTE USING for easier insertion of data
-        values into a dynamic query string (Pavel Stehule)
-       
-      
-
-      
-       
-        Allow looping over the results of a cursor using a FOR
-        loop (Pavel Stehule)
-       
-      
-
-      
-       
-        Support RETURN QUERY EXECUTE (Pavel
-        Stehule)
-       
-      
-
-      
-       
-        Improve the RAISE command (Pavel Stehule)
-
-        
-         
-          
-           Support DETAIL and HINT fields
-          
-         
-         
-          
-           Support specification of the SQLSTATE error code
-          
-         
-         
-          
-           Support an exception name parameter
-          
-         
-         
-          
-           Allow RAISE without parameters in an exception
-           block to re-throw the current error
-          
-         
-        
-       
-      
-
-      
-       
-        Allow specification of SQLSTATE codes
-        in EXCEPTION lists (Pavel Stehule)
-       
-
-       
-        This is useful for handling custom SQLSTATE codes.
-       
-      
-
-      
-       
-        Support the CASE statement (Pavel Stehule)
-       
-      
-
-      
-       
-        Make RETURN QUERY set the special FOUND and
-        GET DIAGNOSTICS ROW_COUNT variables
-        (Pavel Stehule)
-       
-      
-
-      
-       
-        Make FETCH and MOVE set the
-        GET DIAGNOSTICS ROW_COUNT variable
-        (Andrew Gierth)
-       
-      
-
-      
-       
-        Avoid memory leakage when the same function is called at varying
-        exception-block nesting depths (Tom)
-       
-      
-
-     
-
-    
-
-   
-
-   
-    Client Applications
-
-    
-
-     
-      
-       Fix pg_ctl restart to preserve command-line arguments
-       (Bruce)
-      
-     
-
-     
-      
-       Add -w/--no-password option that
-       prevents password prompting in all utilities that have a
-       -W/--password option (Peter)
-      
-     
-
-     
-      
-       Remove 
-       createuser, dropdb,
-       dropuser (Peter)
-      
-
-      
-       These options have had no effect since PostgreSQL
-       8.3.
-      
-     
-
-    
-
-    
-     <application>psql</>
-     
-
-      
-       
-        Remove verbose startup banner; now just suggest help
-        (Joshua Drake)
-       
-      
-
-      
-       
-        Make help show common backslash commands (Greg
-        Sabino Mullane)
-       
-      
-
-      
-       
-        Add \pset format wrapped mode to wrap output to the
-        screen width, or file/pipe output too if \pset columns
-        is set (Bryce Nesbitt)
-       
-      
-
-      
-       
-        Allow all supported spellings of boolean values in \pset,
-        rather than just on and off (Bruce)
-       
-
-       
-        Formerly, any string other than off was silently taken
-        to mean true.  psql will now complain
-        about unrecognized spellings (but still take them as true).
-       
-      
-
-      
-       
-        Use the pager for wide output (Bruce)
-       
-      
-
-      
-       
-        Require a space between a one-letter backslash command and its first
-        argument (Bernd Helmle)
-       
-
-       
-        This removes a historical source of ambiguity.
-       
-      
-
-      
-       
-        Improve tab completion support for schema-qualified and
-        quoted identifiers (Greg Sabino Mullane)
-       
-      
-
-      
-       
-        Add optional on/off argument for
-        \timing (David Fetter)
-       
-      
-
-      
-       
-        Display access control rights on multiple lines (Brendan
-        Jurd, Andreas Scherbaum)
-       
-      
-
-      
-       
-        Make \l show database access privileges (Andrew Gilligan)
-       
-      
-
-      
-       
-        Make \l+ show database sizes, if permissions
-        allow (Andrew Gilligan)
-       
-      
-
-      
-       
-        Add the \ef command to edit function definitions
-        (Abhijit Menon-Sen)
-       
-      
-
-     
-
-    
-
-    
-     <application>psql</> \d* commands
-
-     
-
-      
-       
-        Make \d* commands that do not have a pattern argument
-        show system objects only if the S modifier is specified
-        (Greg Sabino Mullane, Bruce)
-       
-
-       
-        The former behavior was inconsistent across different variants
-        of \d, and in most cases it provided no easy way to see
-        just user objects.
-       
-      
-
-      
-       
-        Improve \d* commands to work with older
-        PostgreSQL server versions (back to 7.4),
-        not only the current server version
-        (Guillaume Lelarge)
-       
-      
-
-      
-       
-        Make \d show foreign-key constraints that reference
-        the selected table (Kenneth D'Souza)
-       
-      
-
-      
-       
-        Make \d on a sequence show its column values
-        (Euler Taveira de Oliveira)
-       
-      
-
-      
-       
-        Add column storage type and other relation options to the
-        \d+ display (Gregory Stark, Euler Taveira de
-        Oliveira)
-       
-      
-
-      
-       
-        Show relation size in \dt+ output (Dickson S.
-        Guedes)
-       
-      
-
-      
-       
-        Show the possible values of enum types in \dT+
-        (David Fetter)
-       
-      
-
-      
-       
-        Allow \dC to accept a wildcard pattern, which matches
-        either datatype involved in the cast (Tom)
-       
-      
-
-      
-       
-        Make \df not hide functions that take or return
-        type cstring (Tom)
-       
-
-       
-        Previously, such functions were hidden because most of them are
-        datatype I/O functions, which were deemed uninteresting.  The new
-        policy about hiding system functions by default makes this wart
-        unnecessary.
-       
-      
-
-     
-
-    
-
-    
-     <application>pg_dump</>
-     
-
-      
-       
-        Add a --no-tablespaces option to
-        pg_dump/pg_dumpall/pg_restore
-        so that dumps can be restored to clusters that have non-matching
-        tablespace layouts (Gavin Roy)
-       
-      
-
-      
-       
-        Remove 
-        pg_dump and pg_dumpall (Tom)
-       
-
-       
-        These options were too frequently confused with the option to
-        select a database name in other PostgreSQL
-        client applications.  The functionality is still available,
-        but you must now spell out the long option name
-        
-       
-      
-
-      
-       
-        Remove 
-        pg_dump and pg_dumpall (Tom)
-       
-
-       
-        Use of this option does not throw an error, but it has no
-        effect.  This option was removed because the version checks
-        are necessary for safety.
-       
-      
-
-      
-       
-        Disable statement_timeout during dump and restore
-        (Joshua Drake)
-       
-      
-
-      
-       
-        Add pg_dump/pg_dumpall option
-        
-       
-
-       
-        This allows dumps to fail if unable to acquire a shared lock
-        within the specified amount of time.
-       
-      
-
-      
-       
-        Reorder pg_dump --data-only output
-        to dump tables referenced by foreign keys before
-        the referencing tables (Tom)
-       
-
-       
-        This allows data loads when foreign keys are already present.
-        If circular references make a safe ordering impossible, a
-        NOTICE is issued.
-       
-      
-
-      
-       
-        Allow pg_dump, pg_dumpall, and
-        pg_restore to use a specified role (Benedek
-        László)
-       
-      
-
-      
-       
-        Allow pg_restore to use multiple concurrent
-        connections to do the restore (Andrew)
-       
-
-       
-        The number of concurrent connections is controlled by the option
-        --jobs.  This is supported only for custom-format archives.
-       
-      
-
-     
-
-    
-
-   
-
-   
-    Programming Tools
-
-    
-     <application>libpq</>
-     
-
-      
-       
-        Allow the OID to be specified when importing a large
-        object, via new function lo_import_with_oid() (Tatsuo)
-       
-      
-
-      
-       
-        Add events support (Andrew Chernow, Merlin Moncure)
-       
-
-       
-        This adds the ability to register callbacks to manage private
-        data associated with PGconn and PGresult
-        objects.
-       
-      
-
-      
-       
-        Improve error handling to allow the return of multiple
-        error messages as multi-line error reports (Magnus)
-       
-      
-
-      
-       
-        Make PQexecParams() and related functions return
-        PGRES_EMPTY_QUERY for an empty query (Tom)
-       
-
-       
-        They previously returned PGRES_COMMAND_OK.
-       
-      
-
-      
-       
-        Document how to avoid the overhead of WSACleanup()
-        on Windows (Andrew Chernow)
-       
-      
-
-     
-
-    
-
-    
-     <application>libpq</> <acronym>SSL</> (Secure Sockets Layer)</div> <div class="diff rem">-      support
-     
-
-      
-       
-        Fix certificate validation for SSL connections
-        (Magnus)
-       
-
-       
-        libpq now supports verifying both the certificate
-        and the name of the server when making SSL
-        connections. If a root certificate is not available to use for
-        verification, SSL connections will fail. The
-        sslmode parameter is used to enable the certificate
-        verification.
-       
-
-       
-        The default is still not to do any verification.
-       
-      
-
-      
-       
-        Allow the file locations for client certificates to be specified
-        (Mark Woodward, Alvaro, Magnus)
-       
-      
-
-      
-       
-        Add a PQinitOpenSSL function to allow greater control
-        over OpenSSL/libcrypto initialization (Andrew Chernow)
-       
-      
-
-      
-       
-        Make libpq unregister its OpenSSL
-        callbacks when no database connections remain open
-        (Bruce, Magnus, Russell Smith)
-       
-
-       
-        This is required for applications that unload the libpq library,
-        otherwise invalid OpenSSL callbacks will remain.
-       
-      
-
-     
-
-    
-
-    
-     <application>ecpg</>
-     
-
-      
-       
-        Add localization support for messages (Euler Taveira de
-        Oliveira)
-       
-      
-
-      
-       
-        ecpg parser is now automatically generated from the server
-        parser (Michael)
-       
-
-       
-        Previously the ecpg parser was hand-maintained.
-       
-      
-
-     
-
-    
-
-    
-     Server Programming Interface (<acronym>SPI</>)
-     
-
-      
-       
-        Add support for single-use plans with out-of-line
-        parameters (Tom)
-       
-      
-
-      
-       
-        Add new SPI_OK_REWRITTEN return code for
-        SPI_execute() (Heikki)
-       
-
-       
-        This is used when a command is rewritten to another type of
-        command.
-       
-      
-
-      
-       
-        Remove unnecessary inclusions from executor/spi.h (Tom)
-       
-
-       
-        SPI-using modules might need to add some #include
-        lines if they were depending on spi.h to include
-        things for them.
-       
-      
-
-     
-
-    
-
-   
-
-   
-    Build Options
-    
-
-     
-      
-       Update build system to use Autoconf 2.61 (Peter)
-      
-     
-
-     
-      
-       Require GNU bison for source code builds (Peter)
-      
-
-      
-       This has effectively been required for several years, but now there
-       is no infrastructure claiming to support other parser tools.
-      
-     
-
-     
-      
-       Add pg_config --htmldir option
-       (Peter)
-      
-     
-
-     
-      
-       Pass float4 by value inside the server (Zoltan
-       Boszormenyi)
-      
-
-      
-       Add configure option
-       --disable-float4-byval to use the old behavior.
-       External C functions that use old-style (version 0) call convention
-       and pass or return float4 values will be broken by this
-       change, so you may need the configure option if you
-       have such functions and don't want to update them.
-      
-     
-
-     
-      
-       Pass float8, int8, and related datatypes
-       by value inside the server on 64-bit platforms (Zoltan Boszormenyi)
-      
-
-      
-       Add configure option
-       --disable-float8-byval to use the old behavior.
-       As above, this change might break old-style external C functions.
-      
-     
-
-     
-      
-       Add configure options --with-segsize,
-       --with-blocksize, --with-wal-blocksize,
-       --with-wal-segsize (Zdenek Kotala, Tom)
-      
-
-      
-       This simplifies build-time control over several constants that
-       previously could only be changed by editing
-       pg_config_manual.h.
-      
-     
-
-     
-      
-       Allow threaded builds on Solaris 2.5 (Bruce)
-      
-     
-
-     
-      
-       Use the system's getopt_long() on Solaris
-       (Zdenek Kotala, Tom)
-      
-
-      
-       This makes option processing more consistent with what Solaris users
-       expect.
-      
-     
-
-     
-      
-       Add support for the Sun Studio compiler on
-       Linux (Julius Stroffek)
-      
-     
-
-     
-      
-       Append the major version number to the backend gettext
-       domain, and the soname major version number to
-       libraries' gettext domain (Peter)
-      
-
-      
-       This simplifies parallel installations of multiple versions.
-      
-     
-
-     
-      
-       Add support for code coverage testing with gcov
-       (Michelle Caisse)
-      
-     
-
-     
-      
-       Allow out-of-tree builds on Mingw and
-       Cygwin (Richard Evans)
-      
-     
-
-     
-      
-       Fix the use of Mingw as a cross-compiling source
-       platform (Peter)
-      
-     
-
-    
-
-   
-
-   
-    Source Code
-    
-
-     
-      
-       Support 64-bit time zone data files (Heikki)
-      
-
-      
-       This adds support for daylight saving time (DST)
-       calculations beyond the year 2038.
-      
-     
-
-     
-      
-       Deprecate use of platform's time_t data type (Tom)
-      
-
-      
-       Some platforms have migrated to 64-bit time_t, some have
-       not, and Windows can't make up its mind what it's doing.  Define
-       pg_time_t to have the same meaning as time_t,
-       but always be 64 bits (unless the platform has no 64-bit integer type),
-       and use that type in all module APIs and on-disk data formats.
-      
-     
-
-     
-      
-       Fix bug in handling of the time zone database when cross-compiling
-       (Richard Evans)
-      
-     
-
-     
-      
-       Link backend object files in one step, rather than in stages
-       (Peter)
-      
-     
-
-     
-      
-       Improve gettext support to allow better translation
-       of plurals (Peter)
-      
-     
-
-     
-      
-       Add message translation support to the PL languages (Alvaro, Peter)
-      
-     
-
-     
-      
-       Add more DTrace probes (Robert Lor)
-      
-     
-
-     
-      
-       Enable DTrace support on Mac OS X
-       Leopard and other non-Solaris platforms (Robert Lor)
-      
-     
-
-     
-      
-       Simplify and standardize conversions between C strings and
-       text datums, by providing common functions for the purpose
-       (Brendan Jurd, Tom)
-      
-     
-
-     
-      
-       Clean up the include/catalog/ header files so that
-       frontend programs can include them without including
-       postgres.h
-       (Zdenek Kotala)
-      
-     
-
-     
-      
-       Make name char-aligned, and suppress zero-padding of
-       name entries in indexes (Tom)
-      
-     
-
-     
-      
-       Add a hook to let plug-ins monitor the executor (Itagaki
-       Takahiro)
-      
-     
-
-     
-      
-       Add a hook to allow the planner's statistics lookup behavior to
-       be overridden (Simon Riggs)
-      
-     
-
-     
-      
-       Add shmem_startup_hook() for custom shared memory
-       requirements (Tom)
-      
-     
-
-     
-      
-       Replace the index access method amgetmulti entry point
-       with amgetbitmap, and extend the API for
-       amgettuple to support run-time determination of
-       operator lossiness (Heikki, Tom, Teodor)
-      
-
-      
-       The API for GIN and GiST opclass consistent functions
-       has been extended as well.
-      
-     
-
-     
-      
-       Add support for partial-match searches in GIN indexes
-       (Teodor Sigaev, Oleg Bartunov)
-      
-     
-
-     
-      
-       Replace pg_class column reltriggers
-       with boolean relhastriggers (Simon)
-      
-
-      
-       Also remove unused pg_class columns
-       relukeys, relfkeys, and
-       relrefs.
-      
-     
-
-     
-      
-       Add a relistemp column to pg_class
-       to ease identification of temporary tables (Tom)
-      
-     
-
-     
-      
-       Move platform FAQs into the main documentation
-       (Peter)
-      
-     
-
-     
-      
-       Prevent parser input files from being built with any conflicts
-       (Peter)
-      
-     
-
-     
-      
-       Add support for the KOI8U (Ukrainian) encoding
-       (Peter)
-      
-     
-
-     
-      
-       Add Japanese message translations (Japan PostgreSQL Users Group)
-      
-
-      
-       This used to be maintained as a separate project.
-      
-     
-
-     
-      
-       Fix problem when setting LC_MESSAGES on
-       MSVC-built systems (Hiroshi Inoue, Hiroshi
-       Saito, Magnus)
-      
-     
-
-    
-
-   
-
-   
-    Contrib
-
-    
-
-     
-      
-       Add contrib/auto_explain to automatically run
-       EXPLAIN on queries exceeding a specified duration
-       (Itagaki Takahiro, Tom)
-      
-     
-
-     
-      
-       Add contrib/btree_gin to allow GIN indexes to
-       handle more datatypes (Oleg, Teodor)
-      
-     
-
-     
-      
-       Add contrib/citext to provide a case-insensitive,
-       multibyte-aware text data type (David Wheeler)
-      
-     
-
-     
-      
-       Add contrib/pg_stat_statements for server-wide
-       tracking of statement execution statistics (Itagaki Takahiro)
-      
-     
-
-     
-      
-       Add duration and query mode options to contrib/pgbench
-       (Itagaki Takahiro)
-      
-     
-
-     
-      
-       Fix contrib/pgstattuple to handle tables and
-       indexes with over 2 billion pages (Tatsuhito Kasahara)
-      
-     
-
-     
-      
-       In contrib/fuzzystrmatch, add a version of the
-       Levenshtein string-distance function that allows the user to
-       specify the costs of insertion, deletion, and substitution
-       (Volkan Yazici)
-      
-     
-
-     
-      
-       Make contrib/ltree support multibyte encodings
-       (laser)
-      
-     
-
-     
-      
-       Improve contrib/dblink's reporting of errors from
-       the remote server (Joe Conway)
-      
-     
-
-     
-      
-       Make sure contrib/dblink uses a password supplied
-       by the user, and not accidentally taken from the server's
-       .pgpass file (Joe Conway)
-      
-
-      
-       This is a minor security enhancement.
-      
-     
-
-     
-      
-       Add fsm_page_contents()
-       to contrib/pageinspect (Heikki)
-      
-     
-
-     
-      
-       Modify get_raw_page() to support free space map
-       (*_fsm) files.  Also update
-       contrib/pg_freespacemap.
-      
-     
-
-     
-      
-       Add support for multibyte encodings to contrib/pg_trgm
-       (Teodor)
-      
-     
-
-     
-      
-       Rewrite contrib/intagg to use new
-       functions array_agg() and unnest()
-       (Tom)
-      
-     
-
-     
-      
-       Remove contrib/intarray's definitions of the
-       <@ and @> operators (Tom)
-      
-
-      
-       This avoids confusion with the equivalent built-in operators.
-       If needed, the contrib/intarray implementations
-       are still available under their historical names @
-       and ~.
-      
-     
-
-    
-
-   
-  
-
-  Release 8.3.7
-
-  
-  Release date
-  2009-03-16
-  
-
-  
-   This release contains a variety of fixes from 8.3.6.
-   For information about new features in the 8.3 major release, see
-   .
-  
-
-  
-   Migration to Version 8.3.7
-
-   
-    A dump/restore is not required for those running 8.3.X.
-    However, if you are upgrading from a version earlier than 8.3.5,
-    see the release notes for 8.3.5.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Prevent error recursion crashes when encoding conversion fails (Tom)
-     
-
-     
-      This change extends fixes made in the last two minor releases for
-      related failure scenarios.  The previous fixes were narrowly tailored
-      for the original problem reports, but we have now recognized that
-      any error thrown by an encoding conversion function could
-      potentially lead to infinite recursion while trying to report the
-      error.  The solution therefore is to disable translation and encoding
-      conversion and report the plain-ASCII form of any error message,
-      if we find we have gotten into a recursive error reporting situation.
-      (CVE-2009-0922)
-     
-    
-
-    
-     
-      Disallow CREATE CONVERSION with the wrong encodings
-      for the specified conversion function (Heikki)
-     
-
-     
-      This prevents one possible scenario for encoding conversion failure.
-      The previous change is a backstop to guard against other kinds of
-      failures in the same area.
-     
-    
-
-    
-     
-      Fix xpath() to not modify the path expression unless
-      necessary, and to make a saner attempt at it when necessary (Andrew)
-     
-
-     
-      The SQL standard suggests that xpath should work on data
-      that is a document fragment, but libxml doesn't support
-      that, and indeed it's not clear that this is sensible according to the
-      XPath standard.  xpath attempted to work around this
-      mismatch by modifying both the data and the path expression, but the
-      modification was buggy and could cause valid searches to fail.  Now,
-      xpath checks whether the data is in fact a well-formed
-      document, and if so invokes libxml with no change to the
-      data or path expression.  Otherwise, a different modification method
-      that is somewhat less likely to fail is used.
-     
-
-     
-      
-       The new modification method is still not 100% satisfactory, and it
-       seems likely that no real solution is possible.  This patch should
-       therefore be viewed as a band-aid to keep from breaking existing
-       applications unnecessarily.  It is likely that
-       PostgreSQL 8.4 will simply reject use of
-       xpath on data that is not a well-formed document.
-      
-     
-    
-
-    
-     
-      Fix core dump when to_char() is given format codes that
-      are inappropriate for the type of the data argument (Tom)
-     
-    
-
-    
-     
-      Fix possible failure in text search when C locale is used with
-      a multi-byte encoding (Teodor)
-     
-
-     
-      Crashes were possible on platforms where wchar_t is narrower
-      than int; Windows in particular.
-     
-    
-
-    
-     
-      Fix extreme inefficiency in text search parser's handling of an
-      email-like string containing multiple @ characters (Heikki)
-     
-    
-
-    
-     
-      Fix planner problem with sub-SELECT in the output list
-      of a larger subquery (Tom)
-     
-
-     
-      The known symptom of this bug is a failed to locate grouping
-      columns error that is dependent on the datatype involved;
-      but there could be other issues as well.
-     
-    
-
-    
-     
-      Fix decompilation of CASE WHEN with an implicit coercion
-      (Tom)
-     
-
-     
-      This mistake could lead to Assert failures in an Assert-enabled build,
-      or an unexpected CASE WHEN clause error message in other
-      cases, when trying to examine or dump a view.
-     
-    
-
-    
-     
-      Fix possible misassignment of the owner of a TOAST table's rowtype (Tom)
-     
-
-     
-      If CLUSTER or a rewriting variant of ALTER TABLE
-      were executed by someone other than the table owner, the
-      pg_type entry for the table's TOAST table would end up
-      marked as owned by that someone.  This caused no immediate problems,
-      since the permissions on the TOAST rowtype aren't examined by any
-      ordinary database operation.  However, it could lead to unexpected
-      failures if one later tried to drop the role that issued the command
-      (in 8.1 or 8.2), or owner of data type appears to be invalid
-      warnings from pg_dump after having done so (in 8.3).
-     
-    
-
-    
-     
-      Change UNLISTEN to exit quickly if the current session has
-      never executed any LISTEN command (Tom)
-     
-
-     
-      Most of the time this is not a particularly useful optimization, but
-      since DISCARD ALL invokes UNLISTEN, the previous
-      coding caused a substantial performance problem for applications that
-      made heavy use of DISCARD ALL.
-     
-    
-
-    
-     
-      Fix PL/pgSQL to not treat INTO after INSERT as
-      an INTO-variables clause anywhere in the string, not only at the start;
-      in particular, don't fail for INSERT INTO within
-      CREATE RULE (Tom)
-     
-    
-
-    
-     
-      Clean up PL/pgSQL error status variables fully at block exit
-      (Ashesh Vashi and Dave Page)
-     
-
-     
-      This is not a problem for PL/pgSQL itself, but the omission could cause
-      the PL/pgSQL Debugger to crash while examining the state of a function.
-     
-    
-
-    
-     
-      Retry failed calls to CallNamedPipe() on Windows
-      (Steve Marshall, Magnus)
-     
-
-     
-      It appears that this function can sometimes fail transiently;
-      we previously treated any failure as a hard error, which could
-      confuse LISTEN/NOTIFY as well as other
-      operations.
-     
-    
-
-    
-     
-      Add MUST (Mauritius Island Summer Time) to the default list
-      of known timezone abbreviations (Xavier Bugaud)
-     
-    
-
-   
-
-  
-
-  Release 8.3.6
-
-  
-  Release date
-  2009-02-02
-  
-
-  
-   This release contains a variety of fixes from 8.3.5.
-   For information about new features in the 8.3 major release, see
-   .
-  
-
-  
-   Migration to Version 8.3.6
-
-   
-    A dump/restore is not required for those running 8.3.X.
-    However, if you are upgrading from a version earlier than 8.3.5,
-    see the release notes for 8.3.5.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Make DISCARD ALL release advisory locks, in addition
-      to everything it already did (Tom)
-     
-
-     
-      This was decided to be the most appropriate behavior.  This could
-      affect existing applications, however.
-     
-    
-
-    
-     
-      Fix whole-index GiST scans to work correctly (Teodor)
-     
-
-     
-      This error could cause rows to be lost if a table is clustered
-      on a GiST index.
-     
-    
-
-    
-     
-      Fix crash of xmlconcat(NULL) (Peter)
-     
-    
-
-    
-     
-      Fix possible crash in ispell dictionary if high-bit-set
-      characters are used as flags (Teodor)
-     
-
-     
-      This is known to be done by one widely available Norwegian dictionary,
-      and the same condition may exist in others.
-     
-    
-
-    
-     
-      Fix misordering of pg_dump output for composite types
-      (Tom)
-     
-
-     
-      The most likely problem was for user-defined operator classes to
-      be dumped after indexes or views that needed them.
-     
-    
-
-    
-     
-      Improve handling of URLs in headline() function (Teodor)
-     
-    
-
-    
-     
-      Improve handling of overlength headlines in headline()
-      function (Teodor)
-     
-    
-
-    
-     
-      Prevent possible Assert failure or misconversion if an encoding
-      conversion is created with the wrong conversion function for the
-      specified pair of encodings (Tom, Heikki)
-     
-    
-
-    
-     
-      Fix possible Assert failure if a statement executed in PL/pgSQL is
-      rewritten into another kind of statement, for example if an
-      INSERT is rewritten into an UPDATE (Heikki)
-     
-    
-
-    
-     
-      Ensure that a snapshot is available to datatype input functions (Tom)
-     
-
-     
-      This primarily affects domains that are declared with CHECK
-      constraints involving user-defined stable or immutable functions.  Such
-      functions typically fail if no snapshot has been set.
-     
-    
-
-    
-     
-      Make it safer for SPI-using functions to be used within datatype I/O;
-      in particular, to be used in domain check constraints (Tom)
-     
-    
-
-    
-     
-      Avoid unnecessary locking of small tables in VACUUM
-      (Heikki)
-     
-    
-
-    
-     
-      Fix a problem that sometimes kept ALTER TABLE ENABLE/DISABLE
-      RULE from being recognized by active sessions (Tom)
-     
-    
-
-    
-     
-      Fix a problem that made UPDATE RETURNING tableoid
-      return zero instead of the correct OID (Tom)
-     
-    
-
-    
-     
-      Allow functions declared as taking ANYARRAY to work on
-      the pg_statistic columns of that type (Tom)
-     
-
-     
-      This used to work, but was unintentionally broken in 8.3.
-     
-    
-
-    
-     
-      Fix planner misestimation of selectivity when transitive equality
-      is applied to an outer-join clause (Tom)
-     
-
-     
-      This could result in bad plans for queries like
-      ... from a left join b on a.a1 = b.b1 where a.a1 = 42 ...
-     
-    
-
-    
-     
-      Improve optimizer's handling of long IN lists (Tom)
-     
-
-     
-      This change avoids wasting large amounts of time on such lists
-      when constraint exclusion is enabled.
-     
-    
-
-    
-     
-      Prevent synchronous scan during GIN index build (Tom)
-     
-
-     
-      Because GIN is optimized for inserting tuples in increasing TID order,
-      choosing to use a synchronous scan could slow the build by a factor of
-      three or more.
-     
-    
-
-    
-     
-      Ensure that the contents of a holdable cursor don't depend on the
-      contents of TOAST tables (Tom)
-     
-
-     
-      Previously, large field values in a cursor result might be represented
-      as TOAST pointers, which would fail if the referenced table got dropped
-      before the cursor is read, or if the large value is deleted and then
-      vacuumed away.  This cannot happen with an ordinary cursor,
-      but it could with a cursor that is held past its creating transaction.
-     
-    
-
-    
-     
-      Fix memory leak when a set-returning function is terminated without
-      reading its whole result (Tom)
-     
-    
-
-    
-     
-      Fix encoding conversion problems in XML functions when the database
-      encoding isn't UTF-8 (Tom)
-     
-    
-
-    
-     
-      Fix contrib/dblink's
-      dblink_get_result(text,bool) function (Joe)
-     
-    
-
-    
-     
-      Fix possible garbage output from contrib/sslinfo functions
-      (Tom)
-     
-    
-
-    
-     
-      Fix incorrect behavior of contrib/tsearch2 compatibility
-      trigger when it's fired more than once in a command (Teodor)
-     
-    
-
-    
-     
-      Fix possible mis-signaling in autovacuum (Heikki)
-     
-    
-
-    
-     
-      Support running as a service on Windows 7 beta (Dave and Magnus)
-     
-    
-
-    
-     
-      Fix ecpg's handling of varchar structs (Michael)
-     
-    
-
-    
-     
-      Fix configure script to properly report failure when
-      unable to obtain linkage information for PL/Perl (Andrew)
-     
-    
-
-    
-     
-      Make all documentation reference pgsql-bugs and/or
-      pgsql-hackers as appropriate, instead of the
-      now-decommissioned pgsql-ports and pgsql-patches
-      mailing lists (Tom)
-     
-    
-
-    
-     
-      Update time zone data files to tzdata release 2009a (for
-      Kathmandu and historical DST corrections in Switzerland, Cuba)
-     
-    
-
-   
-
-  
-
-  Release 8.3.5
-
-  
-  Release date
-  2008-11-03
-  
-
-  
-   This release contains a variety of fixes from 8.3.4.
-   For information about new features in the 8.3 major release, see
-   .
-  
-
-  
-   Migration to Version 8.3.5
-
-   
-    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.  Also, if you were running a previous
-    8.3.X release, it is recommended to REINDEX all GiST
-    indexes after the upgrade.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Fix GiST index corruption due to marking the wrong index entry
-      dead after a deletion (Teodor)
-     
-
-     
-      This would result in index searches failing to find rows they
-      should have found.  Corrupted indexes can be fixed with
-      REINDEX.
-     
-    
-
-    
-     
-      Fix backend crash when the client encoding cannot represent a localized
-      error message (Tom)
-     
-
-     
-      We have addressed similar issues before, but it would still fail if
-      the character has no equivalent message itself couldn't
-      be converted.  The fix is to disable localization and send the plain
-      ASCII error message when we detect such a situation.
-     
-    
-
-    
-     
-      Fix possible crash in bytea-to-XML mapping (Michael McMaster)
-     
-    
-
-    
-     
-      Fix possible crash when deeply nested functions are invoked from
-      a trigger (Tom)
-     
-    
-
-    
-     
-      Improve optimization of expression IN
-      (expression-list) queries (Tom, per an idea from Robert
-      Haas)
-     
-
-     
-      Cases in which there are query variables on the right-hand side had been
-      handled less efficiently in 8.2.x and 8.3.x than in prior versions.
-      The fix restores 8.1 behavior for such cases.
-     
-    
-
-    
-     
-      Fix mis-expansion of rule queries when a sub-SELECT appears
-      in a function call in FROM,  a multi-row VALUES
-      list, or a RETURNING list (Tom)
-     
-
-     
-      The usual symptom of this problem is an unrecognized node type
-      error.
-     
-    
-
-    
-     
-      Fix Assert failure during rescan of an IS NULL
-      search of a GiST index (Teodor)
-     
-    
-
-    
-     
-      Fix memory leak during rescan of a hashed aggregation plan (Neil)
-     
-    
-
-    
-     
-      Ensure an error is reported when a newly-defined PL/pgSQL trigger
-      function is invoked as a normal function (Tom)
-     
-    
-
-    
-     
-      Force a checkpoint before CREATE DATABASE starts to copy
-      files (Heikki)
-     
-
-     
-      This prevents a possible failure if files had recently been deleted
-      in the source database.
-     
-    
-
-    
-     
-      Prevent possible collision of relfilenode numbers
-      when moving a table to another tablespace with ALTER SET
-      TABLESPACE (Heikki)
-     
-
-     
-      The command tried to re-use the existing filename, instead of
-      picking one that is known unused in the destination directory.
-     
-    
-
-    
-     
-      Fix incorrect text search headline generation when single query
-      item matches first word of text (Sushant Sinha)
-     
-    
-
-    
-     
-      Fix improper display of fractional seconds in interval values when
-      using a non-ISO datestyle in an 
-      build (Ron Mayer)
-     
-    
-
-    
-     
-      Make ILIKE compare characters case-insensitively
-      even when they're escaped (Andrew)
-     
-    
-
-    
-     
-      Ensure DISCARD is handled properly by statement logging (Tom)
-     
-    
-
-    
-     
-      Fix incorrect logging of last-completed-transaction time during
-      PITR recovery (Tom)
-     
-    
-
-    
-     
-      Ensure SPI_getvalue and SPI_getbinval
-      behave correctly when the passed tuple and tuple descriptor have
-      different numbers of columns (Tom)
-     
-
-     
-      This situation is normal when a table has had columns added or removed,
-      but these two functions didn't handle it properly.
-      The only likely consequence is an incorrect error indication.
-     
-    
-
-    
-     
-      Mark SessionReplicationRole as PGDLLIMPORT
-      so it can be used by Slony on Windows (Magnus)
-     
-    
-
-    
-     
-      Fix small memory leak when using libpq's
-      gsslib parameter (Magnus)
-     
-
-     
-      The space used by the parameter string was not freed at connection
-      close.
-     
-    
-
-    
-     
-      Ensure libgssapi is linked into libpq
-      if needed (Markus Schaaf)
-     
-    
-
-    
-     
-      Fix ecpg's parsing of CREATE ROLE (Michael)
-     
-    
-
-    
-     
-      Fix recent breakage of pg_ctl restart (Tom)
-     
-    
-
-    
-     
-      Ensure pg_control is opened in binary mode
-      (Itagaki Takahiro)
-     
-
-     
-      pg_controldata and pg_resetxlog
-      did this incorrectly, and so could fail on Windows.
-     
-    
-
-    
-     
-      Update time zone data files to tzdata release 2008i (for
-      DST law changes in Argentina, Brazil, Mauritius, Syria)
-     
-    
-
-   
-
-  
-
-  Release 8.3.4
-
-  
-  Release date
-  2008-09-22
-  
-
-  
-   This release contains a variety of fixes from 8.3.3.
-   For information about new features in the 8.3 major release, see
-   .
-  
-
-  
-   Migration to Version 8.3.4
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Fix bug in btree WAL recovery code (Heikki)
-     
-
-     
-      Recovery failed if the WAL ended partway through a page split operation.
-     
-    
-
-    
-     
-      Fix potential use of wrong cutoff XID for HOT page pruning (Alvaro)
-     
-
-     
-      This error created a risk of corruption in system
-      catalogs that are consulted by VACUUM: dead tuple versions
-      might be removed too soon.  The impact of this on actual database
-      operations would be minimal, since the system doesn't follow MVCC
-      rules while examining catalogs, but it might result in transiently
-      wrong output from pg_dump or other client programs.
-     
-    
-
-    
-     
-      Fix potential miscalculation of datfrozenxid (Alvaro)
-     
-
-     
-      This error may explain some recent reports of failure to remove old
-      pg_clog data.
-     
-    
-
-    
-     
-      Fix incorrect HOT updates after pg_class is reindexed
-      (Tom)
-     
-
-     
-      Corruption of pg_class could occur if REINDEX
-      TABLE pg_class was followed in the same session by an ALTER
-      TABLE RENAME or ALTER TABLE SET SCHEMA command.
-     
-    
-
-    
-     
-      Fix missed combo cid case (Karl Schnaitter)
-     
-
-     
-      This error made rows incorrectly invisible to a transaction in which they
-      had been deleted by multiple subtransactions that all aborted.
-     
-    
-
-    
-     
-      Prevent autovacuum from crashing if the table it's currently
-      checking is deleted at just the wrong time (Alvaro)
-     
-    
-
-    
-     
-      Widen local lock counters from 32 to 64 bits (Tom)
-     
-
-     
-      This responds to reports that the counters could overflow in
-      sufficiently long transactions, leading to unexpected lock is
-      already held errors.
-     
-    
-
-    
-     
-      Fix possible duplicate output of tuples during a GiST index scan (Teodor)
-     
-    
-
-    
-     
-      Regenerate foreign key checking queries from scratch when either
-      table is modified (Tom)
-     
-
-     
-      Previously, 8.3 would attempt to replan the query, but would work from
-      previously generated query text.  This led to failures if a
-      table or column was renamed.
-     
-    
-
-    
-     
-      Fix missed permissions checks when a view contains a simple
-      UNION ALL construct (Heikki)
-     
-
-     
-      Permissions for the referenced tables were checked properly, but not
-      permissions for the view itself.
-     
-    
-
-    
-     
-      Add checks in executor startup to ensure that the tuples produced by an
-      INSERT or UPDATE will match the target table's
-      current rowtype (Tom)
-     
-
-     
-      This situation is believed to be impossible in 8.3, but it can happen in
-      prior releases, so a check seems prudent.
-     
-    
-
-    
-     
-      Fix possible repeated drops during DROP OWNED (Tom)
-     
-
-     
-      This would typically result in strange errors such as cache
-      lookup failed for relation NNN.
-     
-    
-
-    
-     
-      Fix several memory leaks in XML operations (Kris Jurka, Tom)
-     
-    
-
-    
-     
-      Fix xmlserialize() to raise error properly for
-      unacceptable target data type (Tom)
-     
-    
-
-    
-     
-      Fix a couple of places that mis-handled multibyte characters in text
-      search configuration file parsing (Tom)
-     
-
-     
-      Certain characters occurring in configuration files would always cause
-      invalid byte sequence for encoding failures.
-     
-    
-
-    
-     
-      Provide file name and line number location for all errors reported
-      in text search configuration files (Tom)
-     
-    
-
-    
-     
-      Fix AT TIME ZONE to first try to interpret its timezone
-      argument as a timezone abbreviation, and only try it as a full timezone
-      name if that fails, rather than the other way around as formerly (Tom)
-     
-
-     
-      The timestamp input functions have always resolved ambiguous zone names
-      in this order.  Making AT TIME ZONE do so as well improves
-      consistency, and fixes a compatibility bug introduced in 8.1:
-      in ambiguous cases we now behave the same as 8.0 and before did,
-      since in the older versions AT TIME ZONE accepted
-      only abbreviations.
-     
-    
-
-    
-     
-      Fix datetime input functions to correctly detect integer overflow when
-      running on a 64-bit platform (Tom)
-     
-    
-
-    
-     
-      Prevent integer overflows during units conversion when displaying a
-      configuration parameter that has units (Tom)
-     
-    
-
-    
-     
-      Improve performance of writing very long log messages to syslog (Tom)
-     
-    
-
-    
-     
-      Allow spaces in the suffix part of an LDAP URL in
-      pg_hba.conf (Tom)
-     
-    
-
-    
-     
-      Fix bug in backwards scanning of a cursor on a SELECT DISTINCT
-      ON query (Tom)
-     
-    
-
-    
-     
-      Fix planner bug that could improperly push down IS NULL
-      tests below an outer join (Tom)
-     
-
-     
-      This was triggered by occurrence of IS NULL tests for
-      the same relation in all arms of an upper OR clause.
-     
-    
-
-    
-     
-      Fix planner bug with nested sub-select expressions (Tom)
-     
-
-     
-      If the outer sub-select has no direct dependency on the parent query,
-      but the inner one does, the outer value might not get recalculated
-      for new parent query rows.
-     
-    
-
-    
-     
-      Fix planner to estimate that GROUP BY expressions yielding
-      boolean results always result in two groups, regardless of the
-      expressions' contents (Tom)
-     
-
-     
-      This is very substantially more accurate than the regular GROUP
-      BY estimate for certain boolean tests like col
-      IS NULL.
-     
-    
-
-    
-     
-      Fix PL/PgSQL to not fail when a FOR loop's target variable
-      is a record containing composite-type fields (Tom)
-     
-    
-
-    
-     
-      Fix PL/Tcl to behave correctly with Tcl 8.5, and to be more careful
-      about the encoding of data sent to or from Tcl (Tom)
-     
-    
-
-    
-     
-      Improve performance of PQescapeBytea() (Rudolf Leitgeb)
-     
-    
-
-    
-     
-      On Windows, work around a Microsoft bug by preventing
-      libpq from trying to send more than 64kB per system call
-      (Magnus)
-     
-    
-
-    
-     
-      Fix ecpg to handle variables properly in SET
-      commands (Michael)
-     
-    
-
-    
-     
-      Improve pg_dump and pg_restore's
-      error reporting after failure to send a SQL command (Tom)
-     
-    
-
-    
-     
-      Fix pg_ctl to properly preserve postmaster
-      command-line arguments across a restart (Bruce)
-     
-    
-
-    
-     
-      Fix erroneous WAL file cutoff point calculation in
-      pg_standby (Simon)
-     
-    
-
-    
-     
-      Update time zone data files to tzdata release 2008f (for
-      DST law changes in Argentina, Bahamas, Brazil, Mauritius, Morocco,
-      Pakistan, Palestine, and Paraguay)
-     
-    
-
-   
-
-  
-
-  Release 8.3.3
-
-  
-  Release date
-  2008-06-12
-  
-
-  
-   This release contains one serious and one minor bug fix over 8.3.2.
-   For information about new features in the 8.3 major release, see
-   .
-  
-
-  
-   Migration to Version 8.3.3
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Make pg_get_ruledef() parenthesize negative constants (Tom)
-     
-
-     
-      Before this fix, a negative constant in a view or rule might be dumped
-      as, say, -42::integer, which is subtly incorrect: it should
-      be (-42)::integer due to operator precedence rules.
-      Usually this would make little difference, but it could interact with
-      another recent patch to cause
-      PostgreSQL to reject what had been a valid
-      SELECT DISTINCT view query.  Since this could result in
-      pg_dump output failing to reload, it is being treated
-      as a high-priority fix.  The only released versions in which dump
-      output is actually incorrect are 8.3.1 and 8.2.7.
-     
-    
-
-    
-     
-      Make ALTER AGGREGATE ... OWNER TO update
-      pg_shdepend (Tom)
-     
-
-     
-      This oversight could lead to problems if the aggregate was later
-      involved in a DROP OWNED or REASSIGN OWNED
-      operation.
-     
-    
-
-   
-
-  
-
-  Release 8.3.2
-
-  
-  Release date
-  never released
-  
-
-  
-   This release contains a variety of fixes from 8.3.1.
-   For information about new features in the 8.3 major release, see
-   .
-  
-
-  
-   Migration to Version 8.3.2
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Fix ERRORDATA_STACK_SIZE exceeded crash that
-      occurred on Windows when using UTF-8 database encoding and a different
-      client encoding (Tom)
-     
-    
-
-    
-     
-      Fix incorrect archive truncation point calculation for the
-      %r macro in recovery_command parameters
-      (Simon)
-     
-
-     
-      This could lead to data loss if a warm-standby script relied on
-      %r to decide when to throw away WAL segment files.
-     
-    
-
-    
-     
-      Fix 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)
-     
-
-     
-      Previous versions neglected to check this requirement at all.
-     
-    
-
-    
-     
-      Fix REASSIGN OWNED so that it works on procedural
-      languages too (Alvaro)
-     
-    
-
-    
-     
-      Fix problems with SELECT FOR UPDATE/SHARE occurring as a
-      subquery in a query with a non-SELECT top-level operation
-      (Tom)
-     
-    
-
-    
-     
-      Fix possible CREATE TABLE failure when inheriting the
-      same constraint from multiple parent relations that
-      inherited that constraint from a common ancestor (Tom)
-     
-    
-
-    
-     
-      Fix pg_get_ruledef() to show the alias, if any, attached
-      to the target table of an UPDATE or DELETE
-      (Tom)
-     
-    
-
-    
-     
-      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)
-     
-
-     
-      8.3.0 and 8.3.1 threw an error instead.
-     
-    
-
-    
-     
-      Fix GIN bug that could result in a too many LWLocks
-      taken failure (Teodor)
-     
-    
-
-    
-     
-      Fix broken GiST comparison function for tsquery (Teodor)
-     
-    
-
-    
-     
-      Fix tsvector_update_trigger() and ts_stat()
-      to accept domains over the types they expect to work with (Tom)
-     
-    
-
-    
-     
-      Fix failure to support enum data types as foreign keys (Tom)
-     
-    
-
-    
-     
-      Avoid possible crash when decompressing corrupted data
-      (Zdenek Kotala)
-     
-    
-
-    
-     
-      Fix race conditions between delayed unlinks and DROP
-      DATABASE (Heikki)
-     
-
-     
-      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.
-     
-    
-
-    
-     
-      Repair two places where SIGTERM exit of a backend could leave corrupted
-      state in shared memory (Tom)
-     
-
-     
-      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.
-     
-    
-
-    
-     
-      Fix possible crash due to incorrect plan generated for an
-      x IN (SELECT y
-      FROM ...) clause when x and y
-      have different data types; and make sure the behavior is semantically
-      correct when the conversion from y's type to
-      x's type is lossy (Tom)
-     
-    
-
-    
-     
-      Fix oversight that prevented the planner from substituting known Param
-      values as if they were constants (Tom)
-     
-
-     
-      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.
-     
-    
-
-    
-     
-      Fix planner failure when an indexable MIN or
-      MAX aggregate is used with DISTINCT or
-      ORDER BY (Tom)
-     
-    
-
-    
-     
-      Fix planner to ensure it never uses a physical tlist for a
-      plan node that is feeding a Sort node (Tom)
-     
-
-     
-      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.
-     
-    
-
-    
-     
-      Avoid unnecessary copying of query strings (Tom)
-     
-
-     
-      This fixes a performance problem introduced in 8.3.0 when a very large
-      number of commands are submitted as a single query string.
-     
-    
-
-    
-     
-      Make TransactionIdIsCurrentTransactionId() use binary
-      search instead of linear search when checking child-transaction XIDs
-      (Heikki)
-     
-
-     
-      This fixes some cases in which 8.3.0 was significantly
-      slower than earlier releases.
-     
-    
-
-    
-     
-      Fix conversions between ISO-8859-5 and other encodings to handle
-      Cyrillic Yo characters (e and E with
-      two dots) (Sergey Burladyan)
-     
-    
-
-    
-     
-      Fix several datatype input functions, notably array_in(),
-      that were allowing unused bytes in their results to contain
-      uninitialized, unpredictable values (Tom)
-     
-
-     
-      This could lead to failures in which two apparently identical literal
-      values were not seen as equal, resulting in the parser complaining
-      about unmatched ORDER BY and DISTINCT
-      expressions.
-     
-    
-
-    
-     
-      Fix a corner case in regular-expression substring matching
-      (substring(string from
-      pattern)) (Tom)
-     
-
-     
-      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
-      substring('foo' from 'foo(bar)?').
-      This should return NULL, since (bar) isn't matched, but
-      it was mistakenly returning the whole-pattern match instead (ie,
-      foo).
-     
-    
-
-    
-     
-      Prevent cancellation of an auto-vacuum that was launched to prevent
-      XID wraparound (Alvaro)
-     
-    
-
-    
-     
-      Improve 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)
-     
-    
-
-    
-     
-      Fix initdb to reject a relative path for its
-      --xlogdir (-X) option (Tom)
-     
-    
-
-    
-     
-      Make psql print tab characters as an appropriate
-      number of spaces, rather than \x09 as was done in
-      8.3.0 and 8.3.1 (Bruce)
-     
-    
-
-    
-     
-      Update time zone data files to tzdata release 2008c (for
-      DST law changes in Morocco, Iraq, Choibalsan, Pakistan, Syria, Cuba, and
-      Argentina/San_Luis)
-     
-    
-
-    
-     
-      Add ECPGget_PGconn() function to
-      ecpglib (Michael)
-     
-    
-
-    
-     
-      Fix incorrect result from ecpg's
-      PGTYPEStimestamp_sub() function (Michael)
-     
-    
-
-    
-     
-      Fix handling of continuation line markers in ecpg
-      (Michael)
-     
-    
-
-    
-     
-      Fix possible crashes in contrib/cube functions (Tom)
-     
-    
-
-    
-     
-      Fix core dump in contrib/xml2's
-      xpath_table() function when the input query returns a
-      NULL value (Tom)
-     
-    
-
-    
-     
-      Fix contrib/xml2's makefile to not override
-      CFLAGS, and make it auto-configure properly for
-      libxslt present or not (Tom)
-     
-    
-
-   
-
-  
-
-  Release 8.3.1
-
-  
-  Release date
-  2008-03-17
-  
-
-  
-   This release contains a variety of fixes from 8.3.0.
-   For information about new features in the 8.3 major release, see
-   .
-  
-
-  
-   Migration to Version 8.3.1
-
-   
-    A dump/restore is not required for those running 8.3.X.
-    However, you might need to REINDEX indexes on textual
-    columns after updating, if you are affected by the Windows locale
-    issue described below.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Fix character string comparison for Windows locales that consider
-      different character combinations as equal (Tom)
-     
-
-     
-      This fix applies only on Windows and only when using UTF-8
-      database encoding.  The same fix was made for all other cases
-      over two years ago, but Windows with UTF-8 uses a separate code
-      path that was not updated.  If you are using a locale that
-      considers some non-identical strings as equal, you may need to
-      REINDEX to fix existing indexes on textual columns.
-     
-    
-
-    
-     
-      Repair corner-case bugs in VACUUM FULL (Tom)
-     
-
-     
-      A potential deadlock between concurrent VACUUM FULL
-      operations on different system catalogs was introduced in 8.2.
-      This has now been corrected.  8.3 made this worse because the
-      deadlock could occur within a critical code section, making it
-      a PANIC rather than just ERROR condition.
-     
-
-     
-      Also, a VACUUM FULL that failed partway through
-      vacuuming a system catalog could result in cache corruption in
-      concurrent database sessions.
-     
-
-     
-      Another VACUUM FULL bug introduced in 8.3 could
-      result in a crash or out-of-memory report when dealing with
-      pages containing no live tuples.
-     
-    
-
-    
-     
-      Fix misbehavior of foreign key checks involving character
-      or bit columns (Tom)
-     
-
-     
-      If the referencing column were of a different but compatible type
-      (for instance varchar), the constraint was enforced incorrectly.
-     
-    
-
-    
-     
-      Avoid needless deadlock failures in no-op foreign-key checks (Stephan
-      Szabo, Tom)
-     
-    
-
-    
-     
-      Fix possible core dump when re-planning a prepared query (Tom)
-     
-
-     
-      This bug affected only protocol-level prepare operations, not
-      SQL PREPARE, and so tended to be seen only with
-      JDBC, DBI, and other client-side drivers that use prepared
-      statements heavily.
-     
-    
-
-    
-     
-      Fix possible failure when re-planning a query that calls an SPI-using
-      function (Tom)
-     
-    
-
-    
-     
-      Fix failure in row-wise comparisons involving columns of different
-      datatypes (Tom)
-     
-    
-
-    
-     
-      Fix longstanding LISTEN/NOTIFY
-      race condition (Tom)
-     
-
-     
-      In rare cases a session that had just executed a
-      LISTEN might not get a notification, even though
-      one would be expected because the concurrent transaction executing
-      NOTIFY was observed to commit later.
-     
-
-     
-      A side effect of the fix is that a transaction that has executed
-      a not-yet-committed LISTEN command will not see any
-      row in pg_listener for the 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.
-     
-    
-
-    
-     
-      Disallow LISTEN and UNLISTEN within a
-      prepared transaction (Tom)
-     
-
-     
-      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 UNLISTEN remained uncommitted.
-     
-    
-
-    
-     
-      Disallow dropping a temporary table within a
-      prepared transaction (Heikki)
-     
-
-     
-      This was correctly disallowed by 8.1, but the check was inadvertently
-      broken in 8.2 and 8.3.
-     
-    
-
-    
-     
-      Fix rare crash when an error occurs during a query using a hash index
-      (Heikki)
-     
-    
-
-    
-     
-      Fix incorrect comparison of tsquery values (Teodor)
-     
-    
-
-    
-     
-      Fix incorrect behavior of LIKE with non-ASCII characters
-      in single-byte encodings (Rolf Jentsch)
-     
-    
-
-    
-     
-      Disable xmlvalidate (Tom)
-     
-
-     
-      This function should have been removed before 8.3 release, but
-      was inadvertently left in the source code.  It poses a small
-      security risk since unprivileged users could use it to read the
-      first few characters of any file accessible to the server.
-     
-    
-
-    
-     
-      Fix memory leaks in certain usages of set-returning functions (Neil)
-     
-    
-
-    
-     
-      Make encode(bytea, 'escape') convert all
-      high-bit-set byte values into \nnn octal
-      escape sequences (Tom)
-     
-
-     
-      This is necessary to avoid encoding problems when the database
-      encoding is multi-byte.  This change could pose compatibility issues
-      for applications that are expecting specific results from
-      encode.
-     
-    
-
-    
-     
-      Fix input of datetime values for February 29 in years BC (Tom)
-     
-
-     
-      The former coding was mistaken about which years were leap years.
-     
-    
-
-    
-     
-      Fix unrecognized node type error in some variants of
-      ALTER OWNER (Tom)
-     
-    
-
-    
-     
-      Avoid tablespace permissions errors in CREATE TABLE LIKE
-      INCLUDING INDEXES (Tom)
-     
-    
-
-    
-     
-      Ensure pg_stat_activity.waiting flag
-      is cleared when a lock wait is aborted (Tom)
-     
-    
-
-    
-     
-      Fix handling of process permissions on Windows Vista (Dave, Magnus)
-     
-
-     
-      In particular, this fix allows starting the server as the Administrator
-      user.
-     
-    
-
-    
-     
-      Update time zone data files to tzdata release 2008a
-      (in particular, recent Chile changes); adjust timezone abbreviation
-      VET (Venezuela) to mean UTC-4:30, not UTC-4:00 (Tom)
-     
-    
-
-    
-     
-      Fix ecpg problems with arrays (Michael)
-     
-    
-
-    
-     
-      Fix pg_ctl to correctly extract the postmaster's port
-      number from command-line options (Itagaki Takahiro, Tom)
-     
-
-     
-      Previously, pg_ctl start -w could try to contact the
-      postmaster on the wrong port, leading to bogus reports of startup
-      failure.
-     
-    
-
-    
-     
-      Use 
-      in recent gcc versions (Tom)
-     
-
-     
-      This is known to be necessary when building PostgreSQL
-      with gcc 4.3 or later.
-     
-    
-
-    
-     
-      Enable building contrib/uuid-ossp with MSVC (Hiroshi Saito)
-     
-    
-
-   
-
-  
-
-  Release 8.3
-
-  
-   Release date
-   2008-02-04
-  
-
-  
-   Overview
-
-   
-    With significant new functionality and performance enhancements,
-    this release represents a major leap forward for
-    PostgreSQL. This was made possible by a growing
-    community that has dramatically accelerated the pace of
-    development. This release adds the following major features:
-   
-
-   
-
-    
-     
-      Full text search is integrated into the core database system
-     
-    
-
-    
-     
-      Support for the SQL/XML standard, including new operators and an
-      XML data type
-     
-    
-
-    
-     
-      Enumerated data types (ENUM)
-     
-    
-
-    
-     
-      Arrays of composite types
-     
-    
-
-    
-     
-      Universally Unique Identifier (UUID) data type
-     
-    
-
-    
-     
-      Add control over whether NULLs sort first or last
-     
-    
-
-    
-     
-      Updatable cursors
-     
-    
-
-    
-     
-      Server configuration parameters can now be set on a per-function
-      basis
-     
-    
-
-    
-     
-      User-defined types can now have type modifiers
-     
-    
-
-    
-     
-      Automatically re-plan cached queries when table
-      definitions change or statistics are updated
-     
-    
-
-    
-     
-      Numerous improvements in logging and statistics collection
-     
-    
-
-    
-     
-      Support Security Service Provider Interface (SSPI) for
-      authentication on Windows
-     
-    
-
-    
-     
-      Support multiple concurrent autovacuum processes, and other
-      autovacuum improvements
-     
-    
-
-    
-     
-      Allow the whole PostgreSQL distribution to be compiled
-      with Microsoft Visual C++
-     
-    
-
-   
-
-   
-    Major performance improvements are listed below.  Most of
-    these enhancements are automatic and do not require user changes or
-    tuning:
-   
-
-  
-
-    
-     
-      Asynchronous commit delays writes to WAL during transaction commit
-     
-    
-
-    
-     
-      Checkpoint writes can be spread over a longer time period to smooth
-      the I/O spike during each checkpoint
-     
-    
-
-    
-     
-      Heap-Only Tuples (HOT) accelerate space reuse for
-      most UPDATEs and DELETEs
-     
-    
-
-    
-     
-      Just-in-time background writer strategy improves disk write
-      efficiency
-     
-    
-
-    
-     
-      Using non-persistent transaction IDs for read-only transactions
-      reduces overhead and VACUUM requirements
-     
-    
-
-    
-     
-      Per-field and per-row storage overhead has been reduced
-     
-    
-
-    
-     
-      Large sequential scans no longer force out frequently used
-      cached pages
-     
-    
-
-    
-     
-      Concurrent large sequential scans can now share disk reads
-     
-    
-
-    
-     
-      ORDER BY ... LIMIT can be done without sorting
-     
-    
-
-   
-
-   
-    The above items are explained in more detail in the sections below.
-   
-
-  
-
-  
-   Migration to Version 8.3
-
-   
-    A dump/restore using pg_dump is
-    required for those wishing to migrate data from any previous
-    release.
-   
-
-   
-    Observe the following incompatibilities:
-   
-
-   
-    General
-    
-
-     
-      
-       Non-character data types are no longer automatically cast to
-       TEXT (Peter, Tom)
-      
-
-      
-       Previously, if a non-character value was supplied to an operator or
-       function that requires text input, it was automatically
-       cast to text, for most (though not all) built-in data types.
-       This no longer happens: an explicit cast to text is now
-       required for all non-character-string types.  For example, these
-       expressions formerly worked:
-
-
-substr(current_date, 1, 4)
-23 LIKE '2%'
-
-
-       but will now draw function does not exist and operator
-       does not exist errors respectively.  Use an explicit cast instead:
-
-
-substr(current_date::text, 1, 4)
-23::text LIKE '2%'
-
-
-       (Of course, you can use the more verbose CAST() syntax too.)
-       The reason for the change is that these automatic casts too often caused
-       surprising behavior.  An example is that in previous releases, this
-       expression was accepted but did not do what was expected:
-
-
-current_date < 2017-11-17
-
-
-       This is actually comparing a date to an integer, which should be
-       (and now is) rejected — but in the presence of automatic
-       casts both sides were cast to text and a textual comparison
-       was done, because the text < text operator was able
-       to match the expression when no other < operator could.
-      
-
-      
-       Types char(n) and
-       varchar(n) still cast to text
-       automatically.  Also, automatic casting to text still works for
-       inputs to the concatenation (||) operator, so long as least
-       one input is a character-string type.
-      
-     
-
-     
-      
-        Full text search features from contrib/tsearch2 have
-        been moved into the core server, with some minor syntax changes
-      
-
-      
-       contrib/tsearch2 now contains a compatibility
-       interface.
-      
-     
-
-     
-      
-       ARRAY(SELECT ...), where the SELECT
-       returns no rows, now returns an empty array, rather than NULL
-       (Tom)
-      
-     
-
-     
-      
-       The array type name for a base data type is no longer always the base
-       type's name with an underscore prefix
-      
-
-      
-       The old naming convention is still honored when possible, but
-       application code should no longer depend on it. Instead
-       use the new pg_type.typarray column to
-       identify the array data type associated with a given type.
-      
-     
-
-     
-      
-       ORDER BY ... USING operator must now
-       use a less-than or greater-than operator that is
-       defined in a btree operator class
-      
-
-      
-       This restriction was added to prevent inconsistent results.
-      
-     
-
-     
-      
-       SET LOCAL changes now persist until
-       the end of the outermost transaction, unless rolled back (Tom)
-      
-
-      
-       Previously SET LOCAL's effects were lost
-       after subtransaction commit (RELEASE SAVEPOINT
-       or exit from a PL/pgSQL exception block).
-      
-     
-
-     
-      
-       Commands rejected in transaction blocks are now also rejected in
-       multiple-statement query strings (Tom)
-      
-
-      
-       For example, "BEGIN; DROP DATABASE; COMMIT" will now be
-       rejected even if submitted as a single query message.
-      
-     
-
-     
-      
-       ROLLBACK outside a transaction block now
-       issues NOTICE instead of WARNING (Bruce)
-      
-     
-
-     
-      
-       Prevent NOTIFY/LISTEN/UNLISTEN
-       from accepting schema-qualified names (Bruce)
-      
-
-      
-       Formerly, these commands accepted schema.relation but
-       ignored the schema part, which was confusing.
-      
-     
-
-     
-      
-       ALTER SEQUENCE no longer affects the sequence's
-       currval() state (Tom)
-      
-     
-
-     
-      
-       Foreign keys now must match indexable conditions for
-       cross-data-type references (Tom)
-      
-
-      
-       This improves semantic consistency and helps avoid
-       performance problems.
-      
-     
-
-     
-      
-       Restrict object size functions to users who have reasonable
-       permissions to view such information (Tom)
-      
-
-      
-       For example, pg_database_size() now requires
-       CONNECT permission, which is granted to everyone by
-       default. pg_tablespace_size() requires
-       CREATE permission in the tablespace, or is allowed if
-       the tablespace is the default tablespace for the database.
-      
-     
-
-     
-      
-       Remove the undocumented !!= (not in) operator (Tom)
-      
-
-      
-       NOT IN (SELECT ...) is the proper way to
-       perform this operation.
-      
-     
-
-     
-      
-       Internal hashing functions are now more uniformly-distributed (Tom)
-      
-
-      
-       If application code was computing and storing hash values using
-       internal PostgreSQL hashing functions, the hash
-       values must be regenerated.
-      
-     
-
-     
-      
-       C-code conventions for handling variable-length data values
-       have changed (Greg Stark, Tom)
-      
-
-      
-       The new SET_VARSIZE() macro must be used
-       to set the length of generated varlena values. Also, it
-       might be necessary to expand (de-TOAST) input values
-       in more cases.
-      
-     
-
-     
-      
-       Continuous archiving no longer reports each successful archive
-       operation to the server logs unless DEBUG level is used
-       (Simon)
-      
-     
-
-    
-
-    
-
-    
-     Configuration Parameters
-
-    
-
-     
-      
-       Numerous changes in administrative server parameters
-      
-
-      
-       bgwriter_lru_percent,
-       bgwriter_all_percent,
-       bgwriter_all_maxpages,
-       stats_start_collector, and
-       stats_reset_on_server_start are removed.
-       redirect_stderr is renamed to
-       logging_collector.
-       stats_command_string is renamed to
-       track_activities.
-       stats_block_level and stats_row_level
-       are merged into track_counts.
-       A new boolean configuration parameter, archive_mode,
-       controls archiving. Autovacuum's default settings have changed.
-      
-     
-
-     
-      
-       Remove stats_start_collector parameter (Tom)
-      
-
-      
-       We now always start the collector process, unless UDP
-       socket creation fails.
-      
-     
-
-     
-      
-       Remove stats_reset_on_server_start parameter (Tom)
-      
-
-      
-       This was removed because pg_stat_reset()
-       can be used for this purpose.
-      
-     
-
-     
-      
-       Commenting out a parameter in postgresql.conf now
-       causes it to revert to its default value (Joachim Wieland)
-      
-
-      
-       Previously, commenting out an entry left the parameter's value unchanged
-       until the next server restart.
-      
-     
-
-    
-
-    
-
-
-    
-     Character Encodings
-
-    
-
-     
-      
-       Add more checks for invalidly-encoded data (Andrew)
-      
-
-      
-       This change plugs some holes that existed in literal backslash
-       escape string processing and COPY escape
-       processing. Now the de-escaped string is rechecked to see if the
-       result created an invalid multi-byte character.
-      
-     
-
-     
-      
-       Disallow database encodings that are inconsistent with the server's
-       locale setting (Tom)
-      
-
-      
-       On most platforms, C locale is the only locale that
-       will work with any database encoding.  Other locale settings imply
-       a specific encoding and will misbehave if the database encoding
-       is something different.  (Typical symptoms include bogus textual
-       sort order and wrong results from upper() or
-       lower().)  The server now rejects attempts to create
-       databases that have an incompatible encoding.
-      
-     
-
-     
-      
-       Ensure that chr() cannot create
-       invalidly-encoded values (Andrew)
-      
-
-      
-       In UTF8-encoded databases the argument of chr() is
-       now treated as a Unicode code point. In other multi-byte encodings
-       chr()'s argument must designate a 7-bit ASCII
-       character.  Zero is no longer accepted.
-       ascii() has been adjusted to match.
-      
-     
-
-     
-      
-       Adjust convert() behavior to ensure encoding
-       validity (Andrew)
-      
-
-      
-       The two argument form of convert() has been
-       removed. The three argument form now takes a bytea
-       first argument and returns a bytea. To cover the
-       loss of functionality, three new functions have been added:
-      
-
-      
-       
-        
-         convert_from(bytea, name) returns
-         text — converts the first argument from the named
-         encoding to the database encoding
-        
-       
-
-       
-        
-         convert_to(text, name) returns
-         bytea — converts the first argument from the
-         database encoding to the named encoding
-        
-       
-
-       
-        
-         length(bytea, name) returns
-         integer — gives the length of the first
-         argument in characters in the named encoding
-        
-       
-      
-     
-
-     
-      
-       Remove convert(argument USING conversion_name)
-       (Andrew)
-      
-
-      
-       Its behavior did not match the SQL standard.
-      
-     
-
-     
-      
-       Make JOHAB encoding client-only (Tatsuo)
-      
-
-      
-       JOHAB is not safe as a server-side encoding.
-      
-     
-
-    
-
-   
-
-  
-
-  
-   Changes
-
-   
-    Below you will find a detailed account of the
-    changes between PostgreSQL 8.3 and
-    the previous major release.
-   
-
-   
-    Performance
-    
-
-     
-      
-       Asynchronous commit delays writes to WAL during transaction commit
-       (Simon)
-      
-
-      
-       This feature dramatically increases performance for short data-modifying
-       transactions.  The disadvantage is that because disk writes are delayed,
-       if the database or operating system crashes before data is written to
-       the disk, committed data will be lost.  This feature is useful for
-       applications that can accept some data loss.  Unlike turning off
-       fsync, using asynchronous commit does not put
-       database consistency at risk; the worst case is that after a crash the
-       last few reportedly-committed transactions might not be committed after
-       all.
-       This feature is enabled by turning off synchronous_commit
-       (which can be done per-session or per-transaction, if some transactions
-       are critical and others are not).
-       wal_writer_delay can be adjusted to control the maximum
-       delay before transactions actually reach disk.
-      
-     
-
-     
-      
-       Checkpoint writes can be spread over a longer time period to smooth
-       the I/O spike during each checkpoint (Itagaki Takahiro and Heikki
-       Linnakangas)
-      
-
-      
-       Previously all modified buffers were forced to disk as quickly as
-       possible during a
-       checkpoint, causing an I/O spike that decreased server performance.
-       This new approach spreads out disk writes during checkpoints,
-       reducing peak I/O usage. (User-requested and shutdown checkpoints
-       are still written as quickly as possible.)
-      
-     
-
-     
-      
-       Heap-Only Tuples (HOT) accelerate space reuse for most
-       UPDATEs and DELETEs (Pavan Deolasee, with
-       ideas from many others)
-      
-
-      
-       UPDATEs and DELETEs leave dead tuples
-       behind, as do failed INSERTs.  Previously only
-       VACUUM could reclaim space taken by dead tuples. With
-       HOT dead tuple space can be automatically reclaimed at
-       the time of INSERT or UPDATE if no changes
-       are made to indexed columns.  This allows for more consistent
-       performance.  Also, HOT avoids adding duplicate index
-       entries.
-      
-     
-
-     
-      
-       Just-in-time background writer strategy improves disk write
-       efficiency (Greg Smith, Itagaki Takahiro)
-      
-
-      
-       This greatly reduces the need for manual tuning of the background
-       writer.
-      
-     
-
-     
-      
-       Per-field and per-row storage overhead have been reduced
-       (Greg Stark, Heikki Linnakangas)
-      
-
-      
-       Variable-length data types with data values less than 128 bytes long
-       will see a storage decrease of 3 to 6 bytes. For example, two adjacent
-       char(1) fields now use 4 bytes instead of 16. Row headers
-       are also 4 bytes shorter than before.
-      
-     
-
-     
-      
-       Using non-persistent transaction IDs for read-only transactions
-       reduces overhead and VACUUM requirements (Florian Pflug)
-      
-
-      
-       Non-persistent transaction IDs do not increment the global
-       transaction counter. Therefore, they reduce the load on
-       pg_clog and increase the time between forced
-       vacuums to prevent transaction ID wraparound.
-       Other performance
-       improvements were also made that should improve concurrency.
-      
-     
-
-     
-      
-       Avoid incrementing the command counter after a read-only command (Tom)
-      
-
-      
-       There was formerly a hard limit of 232
-       (4 billion) commands per transaction.  Now only commands that
-       actually changed the database count, so while this limit still
-       exists, it should be significantly less annoying.
-      
-     
-
-     
-      
-       Create a dedicated WAL writer process to off-load
-       work from backends (Simon)
-      
-     
-
-     
-      
-       Skip unnecessary WAL writes for CLUSTER and
-       COPY (Simon)
-      
-
-      
-       Unless WAL archiving is enabled, the system now avoids WAL writes
-       for CLUSTER and just fsync()s the
-       table at the end of the command.  It also does the same for
-       COPY if the table was created in the same
-       transaction.
-      
-     
-
-     
-      
-       Large sequential scans no longer force out frequently used
-       cached pages (Simon, Heikki, Tom)
-      
-     
-
-     
-      
-       Concurrent large sequential scans can now share disk reads (Jeff Davis)
-      
-
-      
-       This is accomplished by starting the new sequential scan in the
-       middle of the table (where another sequential scan is already
-       in-progress) and wrapping around to the beginning to finish.  This
-       can affect the order of returned rows in a query that does not
-       specify ORDER BY.  The synchronize_seqscans
-       configuration parameter can be used to disable this if necessary.
-      
-     
-
-     
-      
-       ORDER BY ... LIMIT can be done without sorting
-       (Greg Stark)
-      
-
-      
-       This is done by sequentially scanning the table and tracking just
-       the top N candidate rows, rather than performing a
-       full sort of the entire table.  This is useful when there is no
-       matching index and the LIMIT is not large.
-      
-     
-
-     
-      
-       Put a rate limit on messages sent to the statistics
-       collector by backends
-       (Tom)
-      
-
-      
-       This reduces overhead for short transactions, but might sometimes
-       increase the delay before statistics are tallied.
-      
-     
-
-     
-      
-       Improve hash join performance for cases with many NULLs (Tom)
-      
-     
-
-     
-      
-       Speed up operator lookup for cases with non-exact datatype matches (Tom)
-      
-     
-
-    
-
-   
-
-   
-    Server
-    
-
-     
-      
-       Autovacuum is now enabled by default (Alvaro)
-      
-
-      
-       Several changes were made to eliminate disadvantages of having
-       autovacuum enabled, thereby justifying the change in default.
-       Several other autovacuum parameter defaults were also modified.
-      
-     
-
-     
-      
-       Support multiple concurrent autovacuum processes (Alvaro, Itagaki
-       Takahiro)
-      
-
-      
-       This allows multiple vacuums to run concurrently.  This prevents
-       vacuuming of a large table from delaying vacuuming of smaller tables.
-      
-     
-
-     
-      
-       Automatically re-plan cached queries when table
-       definitions change or statistics are updated (Tom)
-      
-
-      
-       Previously PL/PgSQL functions that referenced temporary tables
-       would fail if the temporary table was dropped and recreated
-       between function invocations, unless EXECUTE was
-       used.  This improvement fixes that problem and many related issues.
-      
-     
-
-     
-      
-       Add a temp_tablespaces parameter to control
-       the tablespaces for temporary tables and files (Jaime Casanova,
-       Albert Cervera, Bernd Helmle)
-      
-
-      
-       This parameter defines a list of tablespaces to be used.  This
-       enables spreading the I/O load across multiple tablespaces. A random
-       tablespace is chosen each time a temporary object is created.
-       Temporary files are no longer stored in per-database
-       pgsql_tmp/ directories but in per-tablespace
-       directories.
-      
-     
-
-     
-      
-       Place temporary tables' TOAST tables in special schemas named
-       pg_toast_temp_nnn (Tom)
-      
-
-      
-       This allows low-level code to recognize these tables as temporary,
-       which enables various optimizations such as not WAL-logging changes
-       and using local rather than shared buffers for access. This also
-       fixes a bug wherein backends unexpectedly held open file references
-       to temporary TOAST tables.
-      
-     
-
-     
-      
-       Fix problem that a constant flow of new connection requests could
-       indefinitely delay the postmaster from completing a shutdown or
-       a crash restart (Tom)
-      
-     
-
-     
-      
-       Guard against a very-low-probability data loss scenario by preventing
-       re-use of a deleted table's relfilenode until after the next
-       checkpoint (Heikki)
-      
-     
-
-     
-      
-       Fix CREATE CONSTRAINT TRIGGER
-       to convert old-style foreign key trigger definitions into regular
-       foreign key constraints (Tom)
-      
-
-      
-       This will ease porting of foreign key constraints carried forward from
-       pre-7.3 databases, if they were never converted using
-       contrib/adddepend.
-      
-     
-
-     
-      
-       Fix DEFAULT NULL to override inherited defaults (Tom)
-      
-
-      
-       DEFAULT NULL was formerly considered a noise phrase, but it
-       should (and now does) override non-null defaults that would otherwise
-       be inherited from a parent table or domain.
-      
-     
-
-     
-      
-       Add new encodings EUC_JIS_2004 and SHIFT_JIS_2004 (Tatsuo)
-      
-
-      
-       These new encodings can be converted to and from UTF-8.
-      
-     
-
-     
-      
-       Change server startup log message from database system is
-       ready to database system is ready to accept
-       connections, and adjust its timing
-      
-
-      
-       The message now appears only when the postmaster is really ready
-       to accept connections.
-      
-     
-
-    
-
-   
-
-   
-    Monitoring
-    
-
-     
-      
-       Add log_autovacuum_min_duration parameter to
-       support configurable logging of autovacuum activity (Simon, Alvaro)
-      
-     
-
-     
-      
-       Add log_lock_waits parameter to log lock waiting
-       (Simon)
-      
-     
-
-     
-      
-       Add log_temp_files parameter to log temporary
-       file usage (Bill Moran)
-      
-     
-
-     
-      
-       Add log_checkpoints parameter to improve logging
-       of checkpoints (Greg Smith, Heikki)
-      
-     
-
-     
-      
-       log_line_prefix now supports
-       %s and %c escapes in all
-       processes (Andrew)
-      
-
-      
-       Previously these escapes worked only for user sessions, not for
-       background database processes.
-      
-     
-
-     
-      
-       Add log_restartpoints to control logging of
-       point-in-time recovery restart points (Simon)
-      
-     
-
-     
-      
-       Last transaction end time is now logged at end of recovery and at
-       each logged restart point (Simon)
-      
-     
-
-     
-      
-       Autovacuum now reports its activity start time in
-       pg_stat_activity (Tom)
-      
-     
-
-     
-      
-       Allow server log output in comma-separated value (CSV) format (Arul
-       Shaji, Greg Smith, Andrew Dunstan)
-      
-
-      
-       CSV-format log files can easily be loaded into a database table for
-       subsequent analysis.
-      
-     
-
-     
-      
-       Use PostgreSQL-supplied timezone support for formatting timestamps
-       displayed in the server log (Tom)
-      
-
-      
-       This avoids Windows-specific problems with localized time zone
-       names that are in the wrong encoding. There is a new
-       log_timezone parameter that controls the timezone
-       used in log messages, independently of the client-visible
-       timezone parameter.
-      
-     
-
-     
-      
-       New system view pg_stat_bgwriter displays
-       statistics about background writer activity (Magnus)
-      
-     
-
-     
-      
-       Add new columns for database-wide tuple statistics to
-       pg_stat_database (Magnus)
-      
-     
-
-     
-      
-       Add an xact_start (transaction start time) column to
-       pg_stat_activity (Neil)
-      
-
-      
-       This makes it easier to identify long-running transactions.
-      
-     
-
-     
-      
-       Add n_live_tuples and n_dead_tuples columns
-       to pg_stat_all_tables and related views (Glen
-       Parker)
-      
-     
-
-     
-      
-       Merge stats_block_level and stats_row_level
-       parameters into a single parameter track_counts, which
-       controls all messages sent to the statistics collector process
-       (Tom)
-      
-     
-
-     
-      
-       Rename stats_command_string parameter to
-       track_activities (Tom)
-      
-     
-
-     
-      
-       Fix statistical counting of live and dead tuples to recognize that
-       committed and aborted transactions have different effects (Tom)
-      
-     
-
-    
-
-   
-
-   
-    Authentication
-    
-
-     
-      
-       Support Security Service Provider Interface (SSPI) for
-       authentication on Windows (Magnus)
-      
-     
-
-     
-      
-       Support GSSAPI authentication (Henry Hotz, Magnus)
-      
-
-      
-       This should be preferred to native Kerberos authentication because
-       GSSAPI is an industry standard.
-      
-     
-
-     
-      
-       Support a global SSL configuration file (Victor Wagner)
-      
-     
-
-     
-      
-       Add ssl_ciphers parameter to control accepted SSL ciphers
-       (Victor Wagner)
-      
-     
-
-     
-      
-       Add a Kerberos realm parameter, krb_realm (Magnus)
-      
-     
-
-    
-
-   
-
-   
-    Write-Ahead Log (<acronym>WAL</>) and Continuous Archiving
-    
-
-     
-      
-       Change the timestamps recorded in transaction WAL records from
-       time_t to TimestampTz representation (Tom)
-      
-
-      
-       This provides sub-second resolution in WAL, which can be useful for
-       point-in-time recovery.
-      
-     
-
-     
-      
-       Reduce WAL disk space needed by warm standby servers (Simon)
-      
-
-      
-       This change allows a warm standby server to pass the name of the earliest
-       still-needed WAL file to the recovery script, allowing automatic removal
-       of no-longer-needed WAL files.  This is done using %r in
-       the restore_command parameter of
-       recovery.conf.
-      
-     
-
-     
-      
-       New boolean configuration parameter, archive_mode,
-       controls archiving (Simon)
-      
-
-      
-       Previously setting archive_command to an empty string
-       turned off archiving. Now archive_mode turns archiving
-       on and off, independently of archive_command. This is
-       useful for stopping archiving temporarily.
-      
-     
-
-    
-
-   
-
-   
-    Queries
-    
-
-     
-      
-       Full text search is integrated into the core database
-       system (Teodor, Oleg)
-      
-
-      
-       Text search has been improved, moved into the core code, and is now
-       installed by default.  contrib/tsearch2 now contains
-       a compatibility interface.
-      
-     
-
-     
-      
-       Add control over whether NULLs sort first or last (Teodor, Tom)
-      
-
-      
-       The syntax is ORDER BY ... NULLS FIRST/LAST.
-      
-     
-
-     
-      
-       Allow per-column ascending/descending (ASC/DESC)
-       ordering options for indexes (Teodor, Tom)
-      
-
-      
-       Previously a query using ORDER BY with mixed
-       ASC/DESC specifiers could not fully use
-       an index. Now an index can be fully used in such cases if the
-       index was created with matching
-       ASC/DESC specifications.
-       NULL sort order within an index can be controlled, too.
-      
-     
-
-     
-      
-       Allow col IS NULL to use an index (Teodor)
-      
-     
-
-     
-      
-       Updatable cursors (Arul Shaji, Tom)
-      
-
-      
-       This eliminates the need to reference a primary key to
-       UPDATE or DELETE rows returned by a cursor.
-       The syntax is UPDATE/DELETE WHERE CURRENT OF.
-      
-     
-
-     
-      
-       Allow FOR UPDATE in cursors (Arul Shaji, Tom)
-      
-     
-
-     
-      
-       Create a general mechanism that supports casts to and from the
-       standard string types (TEXTVARCHAR,
-       CHAR) for every datatype, by
-       invoking the datatype's I/O functions (Tom)
-      
-
-      
-       Previously, such casts were available only for types that had
-       specialized function(s) for the purpose.
-       These new casts are assignment-only in the to-string direction,
-       explicit-only in the other direction, and therefore should create no
-       surprising behavior.
-      
-     
-
-     
-      
-       Allow UNION and related constructs to return a domain
-       type, when all inputs are of that domain type (Tom)
-      
-
-      
-       Formerly, the output would be considered to be of the domain's base
-       type.
-      
-     
-
-     
-      
-       Allow limited hashing when using two different data types (Tom)
-      
-
-      
-       This allows hash joins, hash indexes, hashed subplans, and hash
-       aggregation to be used in situations involving cross-data-type
-       comparisons, if the data types have compatible hash functions.
-       Currently, cross-data-type hashing support exists for
-       smallint/integer/bigint,
-       and for float4/float8.
-      
-     
-
-     
-      
-       Improve optimizer logic for detecting when variables are equal
-       in a WHERE clause (Tom)
-      
-
-      
-       This allows mergejoins to work with descending sort orders, and
-       improves recognition of redundant sort columns.
-      
-     
-
-     
-      
-       Improve performance when planning large inheritance trees in
-       cases where most tables are excluded by constraints (Tom)
-      
-     
-
-    
-
-   
-
-   
-    Object Manipulation
-    
-
-     
-
-      
-       Arrays of composite types (David Fetter, Andrew, Tom)
-      
-
-      
-       In addition to arrays of explicitly-declared composite types,
-       arrays of the rowtypes of regular tables and views are now
-       supported, except for rowtypes of system catalogs, sequences, and TOAST
-       tables.
-      
-
-     
-
-     
-      
-       Server configuration parameters can now be set on a per-function
-       basis (Tom)
-      
-
-      
-       For example, functions can now set their own
-       search_path to prevent unexpected behavior if a
-       different search_path exists at run-time.  Security
-       definer functions should set search_path to
-       avoid security loopholes.
-      
-     
-
-     
-      
-       CREATE/ALTER FUNCTION now supports
-       COST and ROWS options (Tom)
-      
-
-      
-       COST allows specification of the cost of a
-       function call.  ROWS allows specification of
-       the average number or rows returned by a set-returning function.
-       These values are used by the optimizer in choosing the best plan.
-      
-     
-
-     
-      
-       Implement CREATE TABLE LIKE ...  INCLUDING
-       INDEXES (Trevor Hardcastle, Nikhil Sontakke, Neil)
-      
-     
-
-     
-      
-       Allow CREATE INDEX CONCURRENTLY to ignore
-       transactions in other databases (Simon)
-      
-     
-
-     
-      
-       Add ALTER VIEW ... RENAME TO and ALTER
-       SEQUENCE ... RENAME TO (David Fetter, Neil)
-      
-
-      
-       Previously this could only be done via ALTER TABLE ...
-       RENAME TO.
-      
-     
-
-     
-      
-       Make CREATE/DROP/RENAME DATABASE wait briefly for
-       conflicting backends to exit before failing (Tom)
-      
-
-      
-       This increases the likelihood that these commands will succeed.
-      
-     
-
-     
-      
-       Allow triggers and rules to be deactivated in groups using a
-       configuration parameter, for replication purposes (Jan)
-      
-
-      
-       This allows replication systems to disable triggers and rewrite
-       rules as a group without modifying the system catalogs directly.
-       The behavior is controlled by ALTER TABLE and a new
-       parameter session_replication_role.
-      
-     
-
-     
-      
-       User-defined types can now have type modifiers (Teodor, Tom)
-      
-
-      
-       This allows a user-defined type to take a modifier, like
-       ssnum(7).  Previously only built-in
-       data types could have modifiers.
-      
-     
-
-    
-
-   
-
-   
-    Utility Commands
-    
-
-     
-      
-       Non-superuser database owners now are able to add trusted procedural
-       languages to their databases by default (Jeremy Drake)
-      
-
-      
-       While this is reasonably safe, some administrators might wish to
-       revoke the privilege. It is controlled by
-       pg_pltemplate.tmpldbacreate.
-      
-     
-
-     
-      
-       Allow a session's current parameter setting to be used as the
-       default for future sessions (Tom)
-      
-
-      
-       This is done with SET ... FROM CURRENT in
-       CREATE/ALTER FUNCTIONALTER
-       DATABASE, or ALTER ROLE.
-      
-     
-
-     
-      
-       Implement new commands DISCARD ALL,
-       DISCARD PLANSDISCARD
-       TEMPORARY, CLOSE ALL, and
-       DEALLOCATE ALL (Marko Kreen, Neil)
-      
-
-      
-       These commands simplify resetting a database session to its initial
-       state, and are particularly useful for connection-pooling software.
-      
-     
-
-     
-      
-       Make CLUSTER MVCC-safe (Heikki Linnakangas)
-      
-
-      
-       Formerly, CLUSTER would discard all tuples
-       that were committed dead, even if there were still transactions
-       that should be able to see them under MVCC visibility rules.
-      
-     
-
-     
-      
-       Add new CLUSTER syntax: CLUSTER
-       table USING index
-       (Holger Schurig)
-     
-
-      
-       The old CLUSTER syntax is still supported, but
-       the new form is considered more logical.
-      
-     
-
-     
-      
-       Fix EXPLAIN so it can show complex plans
-       more accurately (Tom)
-      
-
-      
-       References to subplan outputs are now always shown correctly,
-       instead of using ?columnN?
-       for complicated cases.
-      
-     
-
-     
-      
-       Limit the amount of information reported when a user is dropped
-       (Alvaro)
-      
-
-      
-       Previously, dropping (or attempting to drop) a user who owned many
-       objects could result in large NOTICE or
-       ERROR messages listing all these objects; this
-       caused problems for some client applications.  The length of the
-       message is now limited, although a full list is still sent to the
-       server log.
-      
-     
-
-    
-
-   
-
-   
-    Data Types
-    
-
-     
-      
-       Support for the SQL/XML standard, including new operators and an
-       XML data type (Nikolay Samokhvalov, Pavel Stehule, Peter)
-      
-     
-
-     
-      
-       Enumerated data types (ENUM) (Tom Dunstan)
-      
-
-      
-       This feature provides convenient support for fields that have a
-       small, fixed set of allowed values.  An example of creating an
-       ENUM type is
-       CREATE TYPE mood AS ENUM ('sad', 'ok', 'happy').
-      
-     
-
-     
-      
-       Universally Unique Identifier (UUID) data type (Gevik
-       Babakhani, Neil)
-      
-
-      
-       This closely matches RFC 4122.
-      
-     
-
-     
-      
-       Widen the MONEY data type to 64 bits (D'Arcy Cain)
-      
-
-      
-       This greatly increases the range of supported MONEY
-       values.
-      
-     
-
-     
-      
-       Fix float4/float8 to handle
-       Infinity and NAN (Not A Number)
-       consistently (Bruce)
-      
-
-      
-       The code formerly was not consistent about distinguishing
-       Infinity from overflow conditions.
-      
-     
-
-     
-      
-       Allow leading and trailing whitespace during input of
-       boolean values (Neil)
-      
-     
-
-     
-      
-       Prevent COPY from using digits and lowercase letters as
-       delimiters (Tom)
-      
-     
-
-    
-
-   
-
-   
-    Functions
-    
-
-     
-      
-       Add new regular expression functions
-       regexp_matches(),
-       regexp_split_to_array(), and
-       regexp_split_to_table() (Jeremy Drake, Neil)
-      
-
-      
-       These functions provide extraction of regular expression
-       subexpressions and allow splitting a string using a POSIX regular
-       expression.
-      
-     
-
-     
-      
-       Add lo_truncate() for large object truncation
-       (Kris Jurka)
-      
-     
-
-     
-      
-       Implement width_bucket() for the float8
-       data type (Neil)
-      
-     
-
-     
-      
-       Add pg_stat_clear_snapshot() to discard
-       statistics snapshots collected during the current transaction
-       (Tom)
-      
-
-      
-       The first request for statistics in a transaction takes a statistics
-       snapshot that does not change during the transaction.  This function
-       allows the snapshot to be discarded and a new snapshot loaded during
-       the next statistics query. This is particularly useful for PL/PgSQL
-       functions, which are confined to a single transaction.
-      
-     
-
-     
-      
-       Add isodow option to EXTRACT() and
-       date_part() (Bruce)
-      
-
-      
-       This returns the day of the week, with Sunday as seven.
-       (dow returns Sunday as zero.)
-      
-     
-
-     
-      
-       Add ID (ISO day of week) and IDDD (ISO
-       day of year) format codes for to_char(),
-       to_date(), and to_timestamp() (Brendan
-       Jurd)
-      
-     
-
-     
-      
-       Make to_timestamp() and to_date()
-       assume TM (trim) option for potentially
-       variable-width fields (Bruce)
-      
-
-      
-       This matches Oracle's behavior.
-      
-     
-
-     
-      
-       Fix off-by-one conversion error in
-       to_date()/to_timestamp()
-       D (non-ISO day of week) fields (Bruce)
-      
-     
-
-     
-      
-       Make setseed() return void, rather than a
-       useless integer value (Neil)
-      
-     
-
-     
-      
-       Add a hash function for NUMERIC (Neil)
-      
-
-      
-       This allows hash indexes and hash-based plans to be used with
-       NUMERIC columns.
-      
-     
-
-     
-      
-       Improve efficiency of
-       LIKE/ILIKE, especially for
-       multi-byte character sets like UTF-8 (Andrew, Itagaki Takahiro)
-      
-     
-
-     
-      
-       Make currtid() functions require
-       SELECT privileges on the target table (Tom)
-      
-     
-
-     
-      
-       Add several txid_*() functions to query
-       active transaction IDs (Jan)
-      
-
-      
-       This is useful for various replication solutions.
-      
-     
-
-    
-
-   
-
-   
-    PL/PgSQL Server-Side Language
-    
-
-     
-      
-       Add scrollable cursor support, including directional control in
-       FETCH (Pavel Stehule)
-      
-     
-
-     
-      
-       Allow IN as an alternative to
-       FROM in PL/PgSQL's FETCH
-       statement, for consistency with the backend's
-       FETCH command (Pavel Stehule)
-      
-     
-
-     
-      
-       Add MOVE to PL/PgSQL (Magnus, Pavel Stehule,
-       Neil)
-      
-     
-
-     
-      
-       Implement RETURN QUERY (Pavel Stehule, Neil)
-      
-
-      
-       This adds convenient syntax for PL/PgSQL set-returning functions
-       that want to return the result of a query.  RETURN QUERY
-       is easier and more efficient than a loop
-       around RETURN NEXT.
-      
-     
-
-     
-      
-       Allow function parameter names to be qualified with the
-       function's name (Tom)
-      
-
-      
-       For example, myfunc.myvar. This is particularly
-       useful for specifying variables in a query where the variable
-       name might match a column name.
-      
-     
-
-     
-      
-       Make qualification of variables with block labels work properly (Tom)
-      
-
-      
-       Formerly, outer-level block labels could unexpectedly interfere with
-       recognition of inner-level record or row references.
-      
-     
-
-     
-      
-       Tighten requirements for FOR loop
-       STEP values (Tom)
-      
-
-      
-       Prevent non-positive STEP values, and handle
-       loop overflows.
-      
-     
-
-     
-      
-       Improve accuracy when reporting syntax error locations (Tom)
-      
-     
-
-    
-
-   
-
-   
-    Other Server-Side Languages
-    
-
-     
-      
-       Allow type-name arguments to PL/Perl
-       spi_prepare() to be data type aliases in
-       addition to names found in pg_type (Andrew)
-      
-     
-
-     
-      
-       Allow type-name arguments to PL/Python
-       plpy.prepare() to be data type aliases in
-       addition to names found in pg_type (Andrew)
-      
-     
-
-     
-      
-       Allow type-name arguments to PL/Tcl spi_prepare to
-       be data type aliases in addition to names found in
-       pg_type (Andrew)
-      
-     
-
-     
-      
-       Enable PL/PythonU to compile on Python 2.5 (Marko Kreen)
-      
-     
-
-     
-      
-       Support a true PL/Python boolean type in compatible Python versions
-       (Python 2.3 and later) (Marko Kreen)
-      
-     
-
-     
-      
-       Fix PL/Tcl problems with thread-enabled libtcl spawning
-       multiple threads within the backend (Steve Marshall, Paul Bayer,
-       Doug Knight)
-      
-
-      
-       This caused all sorts of unpleasantness.
-      
-     
-
-    
-
-   
-
-   
-    <link linkend="APP-PSQL"><application>psql</></link>
-    
-
-     
-      
-       List disabled triggers separately in \d output
-       (Brendan Jurd)
-      
-     
-
-     
-      
-       In \d patterns, always match $
-       literally (Tom)
-      
-     
-
-     
-      
-       Show aggregate return types in \da output
-       (Greg Sabino Mullane)
-      
-     
-
-     
-      
-       Add the function's volatility status to the output of
-       \df+ (Neil)
-      
-     
-
-     
-      
-       Add \prompt capability (Chad Wagner)
-      
-     
-
-     
-      
-       Allow \pset\t, and
-       \x to specify on or off,
-       rather than just toggling (Chad Wagner)
-      
-     
-
-     
-      
-       Add \sleep capability (Jan)
-      
-     
-
-     
-      
-       Enable \timing output for \copy (Andrew)
-      
-     
-
-     
-      
-       Improve \timing resolution on Windows
-       (Itagaki Takahiro)
-      
-     
-
-     
-      
-       Flush \o output after each backslash command (Tom)
-      
-     
-
-     
-      
-       Correctly detect and report errors while reading a -f
-       input file (Peter)
-      
-     
-
-     
-      
-       Remove -u option (this option has long been deprecated)
-       (Tom)
-      
-     
-
-    
-
-   
-
-   
-    <link linkend="APP-PGDUMP"><application>pg_dump</></link>
-    
-
-     
-      
-       Add --tablespaces-only and --roles-only
-       options to pg_dumpall (Dave Page)
-      
-     
-
-     
-      
-       Add an output file option to
-       pg_dumpall (Dave Page)
-      
-
-      
-       This is primarily useful on Windows, where output redirection of
-       child pg_dump processes does not work.
-      
-     
-
-     
-      
-       Allow pg_dumpall to accept an initial-connection
-       database name rather than the default
-       template1 (Dave Page)
-      
-     
-
-     
-      
-       In -n and -t switches, always match
-       $ literally (Tom)
-      
-     
-
-     
-      
-       Improve performance when a database has thousands of objects (Tom)
-      
-     
-
-     
-      
-       Remove -u option (this option has long been deprecated)
-       (Tom)
-      
-     
-
-    
-
-   
-
-   
-    Other Client Applications
-    
-
-     
-      
-       In initdb, allow the location of the
-       pg_xlog directory to be specified
-       (Euler Taveira de Oliveira)
-      
-     
-
-     
-      
-       Enable server core dump generation in pg_regress
-       on supported operating systems (Andrew)
-      
-     
-
-     
-      
-       Add a -t (timeout) parameter to pg_ctl
-       (Bruce)
-      
-
-      
-       This controls how long pg_ctl will wait when waiting
-       for server startup or shutdown.  Formerly the timeout was hard-wired
-       as 60 seconds.
-      
-     
-
-     
-      
-       Add a pg_ctl option to control generation
-       of server core dumps (Andrew)
-      
-     
-
-     
-      
-       Allow Control-C to cancel clusterdb,
-       reindexdb, and vacuumdb (Itagaki
-       Takahiro, Magnus)
-      
-     
-
-     
-      
-       Suppress command tag output for createdb,
-       createuser, dropdb, and
-       dropuser (Peter)
-      
-
-      
-       The --quiet option is ignored and will be removed in 8.4.
-       Progress messages when acting on all databases now go to stdout
-       instead of stderr because they are not actually errors.
-      
-     
-
-    
-
-   
-
-   
-    <link linkend="libpq"><application>libpq</></link>
-    
-
-     
-      
-       Interpret the dbName parameter of
-       PQsetdbLogin() as a conninfo string if
-       it contains an equals sign (Andrew)
-      
-
-      
-       This allows use of conninfo strings in client
-       programs that still use PQsetdbLogin().
-      
-     
-
-     
-      
-       Support a global SSL configuration file (Victor
-       Wagner)
-      
-     
-
-     
-      
-       Add environment variable PGSSLKEY to control
-       SSL hardware keys (Victor Wagner)
-      
-     
-
-     
-      
-       Add lo_truncate() for large object
-       truncation (Kris Jurka)
-      
-     
-
-     
-      
-       Add PQconnectionNeedsPassword() that returns
-       true if the server required a password but none was supplied
-       (Joe Conway, Tom)
-      
-
-      
-       If this returns true after a failed connection attempt, a client
-       application should prompt the user for a password.  In the past
-       applications have had to check for a specific error message string to
-       decide whether a password is needed; that approach is now
-       deprecated.
-      
-     
-
-     
-      
-       Add PQconnectionUsedPassword() that returns
-       true if the supplied password was actually used
-       (Joe Conway, Tom)
-      
-
-      
-       This is useful in some security contexts where it is important
-       to know whether a user-supplied password is actually valid.
-      
-     
-
-    
-
-   
-
-   
-    <link linkend="ecpg"><application>ecpg</></link>
-    
-
-     
-      
-       Use V3 frontend/backend protocol (Michael)
-      
-
-      
-       This adds support for server-side prepared statements.
-      
-     
-
-     
-      
-       Use native threads, instead of pthreads, on Windows (Magnus)
-      
-     
-
-     
-      
-       Improve thread-safety of ecpglib (Itagaki Takahiro)
-      
-     
-
-     
-      
-       Make the ecpg libraries export only necessary API symbols (Michael)
-      
-     
-
-    
-
-   
-
-   
-    <application>Windows</> Port
-    
-
-     
-      
-       Allow the whole PostgreSQL distribution to be compiled
-       with Microsoft Visual C++ (Magnus and others)
-      
-
-      
-       This allows Windows-based developers to use familiar development
-       and debugging tools.
-       Windows executables made with Visual C++ might also have better
-       stability and performance than those made with other tool sets.
-       The client-only Visual C++ build scripts have been removed.
-      
-     
-
-     
-      
-       Drastically reduce postmaster's memory usage when it has many child
-       processes (Magnus)
-      
-     
-
-     
-      
-       Allow regression tests to be started by an administrative
-       user (Magnus)
-      
-     
-
-     
-      
-       Add native shared memory implementation (Magnus)
-      
-     
-
-    
-
-   
-
-   
-    Server Programming Interface (<acronym>SPI</>)
-    
-
-     
-      
-       Add cursor-related functionality in SPI (Pavel Stehule)
-      
-
-      
-       Allow access to the cursor-related planning options, and add
-       FETCH/MOVE routines.
-      
-     
-
-     
-      
-       Allow execution of cursor commands through
-       SPI_execute (Tom)
-      
-
-      
-       The macro SPI_ERROR_CURSOR still exists but will
-       never be returned.
-      
-     
-
-     
-      
-       SPI plan pointers are now declared as SPIPlanPtr instead of
-       void * (Tom)
-      
-
-      
-       This does not break application code, but switching is
-       recommended to help catch simple programming mistakes.
-      
-     
-
-    
-
-   
-
-   
-    Build Options
-    
-
-     
-      
-       Add configure option --enable-profiling
-       to enable code profiling (works only with gcc)
-       (Korry Douglas and Nikhil Sontakke)
-      
-     
-
-     
-      
-       Add configure option --with-system-tzdata
-       to use the operating system's time zone database (Peter)
-      
-     
-
-     
-      
-       Fix PGXS so extensions can be built against PostgreSQL
-       installations whose pg_config program does not
-       appear first in the PATH (Tom)
-      
-     
-
-     
-      
-       Support gmake draft when building the
-       SGML documentation (Bruce)
-      
-
-      
-       Unless draft is used, the documentation build will
-       now be repeated if necessary to ensure the index is up-to-date.
-      
-     
-
-    
-
-   
-
-   
-    Source Code
-    
-
-     
-      
-       Rename macro DLLIMPORT to PGDLLIMPORT to
-       avoid conflicting with third party includes (like Tcl) that
-       define DLLIMPORT (Magnus)
-      
-     
-
-     
-      
-       Create operator families to improve planning of
-       queries involving cross-data-type comparisons (Tom)
-      
-     
-
-     
-      
-       Update GIN extractQuery() API to allow signalling
-       that nothing can satisfy the query (Teodor)
-      
-     
-
-     
-      
-       Move NAMEDATALEN definition from
-       postgres_ext.h to pg_config_manual.h
-       (Peter)
-      
-     
-
-     
-      
-       Provide strlcpy() and
-       strlcat() on all platforms, and replace
-       error-prone uses of strncpy(),
-       strncat(), etc (Peter)
-      
-     
-
-     
-      
-       Create hooks to let an external plugin monitor (or even replace) the
-       planner and create plans for hypothetical situations (Gurjeet
-       Singh, Tom)
-      
-     
-
-     
-      
-       Create a function variable join_search_hook to let plugins
-       override the join search order portion of the planner (Julius
-       Stroffek)
-      
-     
-
-     
-      
-       Add tas() support for Renesas' M32R processor
-       (Kazuhiro Inaoka)
-      
-     
-
-     
-      
-       quote_identifier() and
-       pg_dump no longer quote keywords that are
-       unreserved according to the grammar (Tom)
-      
-     
-
-     
-      
-       Change the on-disk representation of the NUMERIC
-       data type so that the sign_dscale word comes
-       before the weight (Tom)
-      
-     
-
-     
-      
-       Use SYSV semaphores rather than POSIX on Darwin
-       >= 6.0, i.e., OS X 10.2 and up (Chris Marcellino)
-      
-     
-
-     
-      
-       Add acronym and 
-       linkend="creating-cluster-nfs">NFS documentation
-       sections (Bruce)
-      
-     
-
-     
-      
-       "Postgres" is now documented as an accepted alias for
-       "PostgreSQL" (Peter)
-      
-     
-
-     
-      
-       Add documentation about preventing database server spoofing when
-       the server is down (Bruce)
-      
-     
-
-    
-
-   
-
-   
-    Contrib
-    
-
-     
-      
-       Move contrib README content into the
-       main PostgreSQL documentation (Albert Cervera i
-       Areny)
-      
-     
-
-     
-      
-       Add contrib/pageinspect module for low-level
-       page inspection (Simon, Heikki)
-      
-     
-
-     
-      
-       Add contrib/pg_standby module for controlling
-       warm standby operation (Simon)
-      
-     
-
-     
-      
-       Add contrib/uuid-ossp module for generating
-       UUID values using the OSSP UUID library (Peter)
-      
-
-      
-       Use configure
-       --with-ossp-uuid to activate. This takes
-       advantage of the new UUID builtin type.
-      
-     
-
-     
-      
-       Add contrib/dict_int,
-       contrib/dict_xsyn, and
-       contrib/test_parser modules to provide
-       sample add-on text search dictionary templates and parsers
-       (Sergey Karpov)
-      
-     
-
-     
-      
-       Allow contrib/pgbench to set the fillfactor (Pavan
-       Deolasee)
-      
-     
-
-     
-      
-       Add timestamps to contrib/pgbench -l
-       (Greg Smith)
-      
-     
-
-     
-      
-       Add usage count statistics to
-       contrib/pgbuffercache (Greg Smith)
-      
-     
-
-     
-      
-       Add GIN support for contrib/hstore (Teodor)
-      
-     
-
-     
-      
-       Add GIN support for contrib/pg_trgm (Guillaume Smet, Teodor)
-      
-     
-
-     
-      
-       Update OS/X startup scripts in
-       contrib/start-scripts (Mark Cotner, David
-       Fetter)
-      
-     
-
-     
-      
-       Restrict pgrowlocks() and
-       dblink_get_pkey() to users who have
-       SELECT privilege on the target table (Tom)
-      
-     
-
-     
-      
-       Restrict contrib/pgstattuple functions to
-       superusers (Tom)
-      
-     
-
-     
-      
-       contrib/xml2 is deprecated and planned for
-       removal in 8.4 (Peter)
-      
-
-      
-       The new XML support in core PostgreSQL supersedes this module.
-      
-     
-
-    
-
-   
-  
-
-  Release 8.2.13
-
-  
-  Release date
-  2009-03-16
-  
-
-  
-   This release contains a variety of fixes from 8.2.12.
-   For information about new features in the 8.2 major release, see
-   .
-  
-
-  
-   Migration to Version 8.2.13
-
-   
-    A dump/restore is not required for those running 8.2.X.
-    However, if you are upgrading from a version earlier than 8.2.11,
-    see the release notes for 8.2.11.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Prevent error recursion crashes when encoding conversion fails (Tom)
-     
-
-     
-      This change extends fixes made in the last two minor releases for
-      related failure scenarios.  The previous fixes were narrowly tailored
-      for the original problem reports, but we have now recognized that
-      any error thrown by an encoding conversion function could
-      potentially lead to infinite recursion while trying to report the
-      error.  The solution therefore is to disable translation and encoding
-      conversion and report the plain-ASCII form of any error message,
-      if we find we have gotten into a recursive error reporting situation.
-      (CVE-2009-0922)
-     
-    
-
-    
-     
-      Disallow CREATE CONVERSION with the wrong encodings
-      for the specified conversion function (Heikki)
-     
-
-     
-      This prevents one possible scenario for encoding conversion failure.
-      The previous change is a backstop to guard against other kinds of
-      failures in the same area.
-     
-    
-
-    
-     
-      Fix core dump when to_char() is given format codes that
-      are inappropriate for the type of the data argument (Tom)
-     
-    
-
-    
-     
-      Fix possible failure in contrib/tsearch2 when C locale is
-      used with a multi-byte encoding (Teodor)
-     
-
-     
-      Crashes were possible on platforms where wchar_t is narrower
-      than int; Windows in particular.
-     
-    
-
-    
-     
-      Fix extreme inefficiency in contrib/tsearch2 parser's
-      handling of an email-like string containing multiple @
-      characters (Heikki)
-     
-    
-
-    
-     
-      Fix decompilation of CASE WHEN with an implicit coercion
-      (Tom)
-     
-
-     
-      This mistake could lead to Assert failures in an Assert-enabled build,
-      or an unexpected CASE WHEN clause error message in other
-      cases, when trying to examine or dump a view.
-     
-    
-
-    
-     
-      Fix possible misassignment of the owner of a TOAST table's rowtype (Tom)
-     
-
-     
-      If CLUSTER or a rewriting variant of ALTER TABLE
-      were executed by someone other than the table owner, the
-      pg_type entry for the table's TOAST table would end up
-      marked as owned by that someone.  This caused no immediate problems,
-      since the permissions on the TOAST rowtype aren't examined by any
-      ordinary database operation.  However, it could lead to unexpected
-      failures if one later tried to drop the role that issued the command
-      (in 8.1 or 8.2), or owner of data type appears to be invalid
-      warnings from pg_dump after having done so (in 8.3).
-     
-    
-
-    
-     
-      Fix PL/pgSQL to not treat INTO after INSERT as
-      an INTO-variables clause anywhere in the string, not only at the start;
-      in particular, don't fail for INSERT INTO within
-      CREATE RULE (Tom)
-     
-    
-
-    
-     
-      Clean up PL/pgSQL error status variables fully at block exit
-      (Ashesh Vashi and Dave Page)
-     
-
-     
-      This is not a problem for PL/pgSQL itself, but the omission could cause
-      the PL/pgSQL Debugger to crash while examining the state of a function.
-     
-    
-
-    
-     
-      Retry failed calls to CallNamedPipe() on Windows
-      (Steve Marshall, Magnus)
-     
-
-     
-      It appears that this function can sometimes fail transiently;
-      we previously treated any failure as a hard error, which could
-      confuse LISTEN/NOTIFY as well as other
-      operations.
-     
-    
-
-    
-     
-      Add MUST (Mauritius Island Summer Time) to the default list
-      of known timezone abbreviations (Xavier Bugaud)
-     
-    
-
-   
-
-  
-
-  Release 8.2.12
-
-  
-  Release date
-  2009-02-02
-  
-
-  
-   This release contains a variety of fixes from 8.2.11.
-   For information about new features in the 8.2 major release, see
-   .
-  
-
-  
-   Migration to Version 8.2.12
-
-   
-    A dump/restore is not required for those running 8.2.X.
-    However, if you are upgrading from a version earlier than 8.2.11,
-    see the release notes for 8.2.11.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Improve handling of URLs in headline() function (Teodor)
-     
-    
-
-    
-     
-      Improve handling of overlength headlines in headline()
-      function (Teodor)
-     
-    
-
-    
-     
-      Prevent possible Assert failure or misconversion if an encoding
-      conversion is created with the wrong conversion function for the
-      specified pair of encodings (Tom, Heikki)
-     
-    
-
-    
-     
-      Fix possible Assert failure if a statement executed in PL/pgSQL is
-      rewritten into another kind of statement, for example if an
-      INSERT is rewritten into an UPDATE (Heikki)
-     
-    
-
-    
-     
-      Ensure that a snapshot is available to datatype input functions (Tom)
-     
-
-     
-      This primarily affects domains that are declared with CHECK
-      constraints involving user-defined stable or immutable functions.  Such
-      functions typically fail if no snapshot has been set.
-     
-    
-
-    
-     
-      Make it safer for SPI-using functions to be used within datatype I/O;
-      in particular, to be used in domain check constraints (Tom)
-     
-    
-
-    
-     
-      Avoid unnecessary locking of small tables in VACUUM
-      (Heikki)
-     
-    
-
-    
-     
-      Fix a problem that made UPDATE RETURNING tableoid
-      return zero instead of the correct OID (Tom)
-     
-    
-
-    
-     
-      Fix planner misestimation of selectivity when transitive equality
-      is applied to an outer-join clause (Tom)
-     
-
-     
-      This could result in bad plans for queries like
-      ... from a left join b on a.a1 = b.b1 where a.a1 = 42 ...
-     
-    
-
-    
-     
-      Improve optimizer's handling of long IN lists (Tom)
-     
-
-     
-      This change avoids wasting large amounts of time on such lists
-      when constraint exclusion is enabled.
-     
-    
-
-    
-     
-      Ensure that the contents of a holdable cursor don't depend on the
-      contents of TOAST tables (Tom)
-     
-
-     
-      Previously, large field values in a cursor result might be represented
-      as TOAST pointers, which would fail if the referenced table got dropped
-      before the cursor is read, or if the large value is deleted and then
-      vacuumed away.  This cannot happen with an ordinary cursor,
-      but it could with a cursor that is held past its creating transaction.
-     
-    
-
-    
-     
-      Fix memory leak when a set-returning function is terminated without
-      reading its whole result (Tom)
-     
-    
-
-    
-     
-      Fix contrib/dblink's
-      dblink_get_result(text,bool) function (Joe)
-     
-    
-
-    
-     
-      Fix possible garbage output from contrib/sslinfo functions
-      (Tom)
-     
-    
-
-    
-     
-      Fix configure script to properly report failure when
-      unable to obtain linkage information for PL/Perl (Andrew)
-     
-    
-
-    
-     
-      Make all documentation reference pgsql-bugs and/or
-      pgsql-hackers as appropriate, instead of the
-      now-decommissioned pgsql-ports and pgsql-patches
-      mailing lists (Tom)
-     
-    
-
-    
-     
-      Update time zone data files to tzdata release 2009a (for
-      Kathmandu and historical DST corrections in Switzerland, Cuba)
-     
-    
-
-   
-
-  
-
-  Release 8.2.11
-
-  
-  Release date
-  2008-11-03
-  
-
-  
-   This release contains a variety of fixes from 8.2.10.
-   For information about new features in the 8.2 major release, see
-   .
-  
-
-  
-   Migration to Version 8.2.11
-
-   
-    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.  Also, if you were running a previous
-    8.2.X release, it is recommended to REINDEX all GiST
-    indexes after the upgrade.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Fix GiST index corruption due to marking the wrong index entry
-      dead after a deletion (Teodor)
-     
-
-     
-      This would result in index searches failing to find rows they
-      should have found.  Corrupted indexes can be fixed with
-      REINDEX.
-     
-    
-
-    
-     
-      Fix backend crash when the client encoding cannot represent a localized
-      error message (Tom)
-     
-
-     
-      We have addressed similar issues before, but it would still fail if
-      the character has no equivalent message itself couldn't
-      be converted.  The fix is to disable localization and send the plain
-      ASCII error message when we detect such a situation.
-     
-    
-
-    
-     
-      Fix possible crash when deeply nested functions are invoked from
-      a trigger (Tom)
-     
-    
-
-    
-     
-      Improve optimization of expression IN
-      (expression-list) queries (Tom, per an idea from Robert
-      Haas)
-     
-
-     
-      Cases in which there are query variables on the right-hand side had been
-      handled less efficiently in 8.2.x and 8.3.x than in prior versions.
-      The fix restores 8.1 behavior for such cases.
-     
-    
-
-    
-     
-      Fix mis-expansion of rule queries when a sub-SELECT appears
-      in a function call in FROM,  a multi-row VALUES
-      list, or a RETURNING list (Tom)
-     
-
-     
-      The usual symptom of this problem is an unrecognized node type
-      error.
-     
-    
-
-    
-     
-      Fix memory leak during rescan of a hashed aggregation plan (Neil)
-     
-    
-
-    
-     
-      Ensure an error is reported when a newly-defined PL/pgSQL trigger
-      function is invoked as a normal function (Tom)
-     
-    
-
-    
-     
-      Prevent possible collision of relfilenode numbers
-      when moving a table to another tablespace with ALTER SET
-      TABLESPACE (Heikki)
-     
-
-     
-      The command tried to re-use the existing filename, instead of
-      picking one that is known unused in the destination directory.
-     
-    
-
-    
-     
-      Fix incorrect tsearch2 headline generation when single query
-      item matches first word of text (Sushant Sinha)
-     
-    
-
-    
-     
-      Fix improper display of fractional seconds in interval values when
-      using a non-ISO datestyle in an 
-      build (Ron Mayer)
-     
-    
-
-    
-     
-      Ensure SPI_getvalue and SPI_getbinval
-      behave correctly when the passed tuple and tuple descriptor have
-      different numbers of columns (Tom)
-     
-
-     
-      This situation is normal when a table has had columns added or removed,
-      but these two functions didn't handle it properly.
-      The only likely consequence is an incorrect error indication.
-     
-    
-
-    
-     
-      Fix ecpg's parsing of CREATE ROLE (Michael)
-     
-    
-
-    
-     
-      Fix recent breakage of pg_ctl restart (Tom)
-     
-    
-
-    
-     
-      Ensure pg_control is opened in binary mode
-      (Itagaki Takahiro)
-     
-
-     
-      pg_controldata and pg_resetxlog
-      did this incorrectly, and so could fail on Windows.
-     
-    
-
-    
-     
-      Update time zone data files to tzdata release 2008i (for
-      DST law changes in Argentina, Brazil, Mauritius, Syria)
-     
-    
-
-   
-
-  
-
-  Release 8.2.10
-
-  
-  Release date
-  2008-09-22
-  
-
-  
-   This release contains a variety of fixes from 8.2.9.
-   For information about new features in the 8.2 major release, see
-   .
-  
-
-  
-   Migration to Version 8.2.10
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Fix bug in btree WAL recovery code (Heikki)
-     
-
-     
-      Recovery failed if the WAL ended partway through a page split operation.
-     
-    
-
-    
-     
-      Fix potential miscalculation of datfrozenxid (Alvaro)
-     
-
-     
-      This error may explain some recent reports of failure to remove old
-      pg_clog data.
-     
-    
-
-    
-     
-      Widen local lock counters from 32 to 64 bits (Tom)
-     
-
-     
-      This responds to reports that the counters could overflow in
-      sufficiently long transactions, leading to unexpected lock is
-      already held errors.
-     
-    
-
-    
-     
-      Fix possible duplicate output of tuples during a GiST index scan (Teodor)
-     
-    
-
-    
-     
-      Fix missed permissions checks when a view contains a simple
-      UNION ALL construct (Heikki)
-     
-
-     
-      Permissions for the referenced tables were checked properly, but not
-      permissions for the view itself.
-     
-    
-
-    
-     
-      Add checks in executor startup to ensure that the tuples produced by an
-      INSERT or UPDATE will match the target table's
-      current rowtype (Tom)
-     
-
-     
-      ALTER COLUMN TYPE, followed by re-use of a previously
-      cached plan, could produce this type of situation.  The check protects
-      against data corruption and/or crashes that could ensue.
-     
-    
-
-    
-     
-      Fix possible repeated drops during DROP OWNED (Tom)
-     
-
-     
-      This would typically result in strange errors such as cache
-      lookup failed for relation NNN.
-     
-    
-
-    
-     
-      Fix AT TIME ZONE to first try to interpret its timezone
-      argument as a timezone abbreviation, and only try it as a full timezone
-      name if that fails, rather than the other way around as formerly (Tom)
-     
-
-     
-      The timestamp input functions have always resolved ambiguous zone names
-      in this order.  Making AT TIME ZONE do so as well improves
-      consistency, and fixes a compatibility bug introduced in 8.1:
-      in ambiguous cases we now behave the same as 8.0 and before did,
-      since in the older versions AT TIME ZONE accepted
-      only abbreviations.
-     
-    
-
-    
-     
-      Fix datetime input functions to correctly detect integer overflow when
-      running on a 64-bit platform (Tom)
-     
-    
-
-    
-     
-      Prevent integer overflows during units conversion when displaying a
-      configuration parameter that has units (Tom)
-     
-    
-
-    
-     
-      Improve performance of writing very long log messages to syslog (Tom)
-     
-    
-
-    
-     
-      Allow spaces in the suffix part of an LDAP URL in
-      pg_hba.conf (Tom)
-     
-    
-
-    
-     
-      Fix bug in backwards scanning of a cursor on a SELECT DISTINCT
-      ON query (Tom)
-     
-    
-
-    
-     
-      Fix planner bug with nested sub-select expressions (Tom)
-     
-
-     
-      If the outer sub-select has no direct dependency on the parent query,
-      but the inner one does, the outer value might not get recalculated
-      for new parent query rows.
-     
-    
-
-    
-     
-      Fix planner to estimate that GROUP BY expressions yielding
-      boolean results always result in two groups, regardless of the
-      expressions' contents (Tom)
-     
-
-     
-      This is very substantially more accurate than the regular GROUP
-      BY estimate for certain boolean tests like col
-      IS NULL.
-     
-    
-
-    
-     
-      Fix PL/PgSQL to not fail when a FOR loop's target variable
-      is a record containing composite-type fields (Tom)
-     
-    
-
-    
-     
-      Fix PL/Tcl to behave correctly with Tcl 8.5, and to be more careful
-      about the encoding of data sent to or from Tcl (Tom)
-     
-    
-
-    
-     
-      On Windows, work around a Microsoft bug by preventing
-      libpq from trying to send more than 64kB per system call
-      (Magnus)
-     
-    
-
-    
-     
-      Improve pg_dump and pg_restore's
-      error reporting after failure to send a SQL command (Tom)
-     
-    
-
-    
-     
-      Fix pg_ctl to properly preserve postmaster
-      command-line arguments across a restart (Bruce)
-     
-    
-
-    
-     
-      Update time zone data files to tzdata release 2008f (for
-      DST law changes in Argentina, Bahamas, Brazil, Mauritius, Morocco,
-      Pakistan, Palestine, and Paraguay)
-     
-    
-
-   
-
-  
-
-  Release 8.2.9
-
-  
-  Release date
-  2008-06-12
-  
-
-  
-   This release contains one serious and one minor bug fix over 8.2.8.
-   For information about new features in the 8.2 major release, see
-   .
-  
-
-  
-   Migration to Version 8.2.9
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Make pg_get_ruledef() parenthesize negative constants (Tom)
-     
-
-     
-      Before this fix, a negative constant in a view or rule might be dumped
-      as, say, -42::integer, which is subtly incorrect: it should
-      be (-42)::integer due to operator precedence rules.
-      Usually this would make little difference, but it could interact with
-      another recent patch to cause
-      PostgreSQL to reject what had been a valid
-      SELECT DISTINCT view query.  Since this could result in
-      pg_dump output failing to reload, it is being treated
-      as a high-priority fix.  The only released versions in which dump
-      output is actually incorrect are 8.3.1 and 8.2.7.
-     
-    
-
-    
-     
-      Make ALTER AGGREGATE ... OWNER TO update
-      pg_shdepend (Tom)
-     
-
-     
-      This oversight could lead to problems if the aggregate was later
-      involved in a DROP OWNED or REASSIGN OWNED
-      operation.
-     
-    
-
-   
-
-  
-
-  Release 8.2.8
-
-  
-  Release date
-  never released
-  
-
-  
-   This release contains a variety of fixes from 8.2.7.
-   For information about new features in the 8.2 major release, see
-   .
-  
-
-  
-   Migration to Version 8.2.8
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Fix ERRORDATA_STACK_SIZE exceeded crash that
-      occurred on Windows when using UTF-8 database encoding and a different
-      client encoding (Tom)
-     
-    
-
-    
-     
-      Fix 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)
-     
-
-     
-      Previous versions neglected to check this requirement at all.
-     
-    
-
-    
-     
-      Fix possible CREATE TABLE failure when inheriting the
-      same constraint from multiple parent relations that
-      inherited that constraint from a common ancestor (Tom)
-     
-    
-
-    
-     
-      Fix pg_get_ruledef() to show the alias, if any, attached
-      to the target table of an UPDATE or DELETE
-      (Tom)
-     
-    
-
-    
-     
-      Fix GIN bug that could result in a too many LWLocks
-      taken failure (Teodor)
-     
-    
-
-    
-     
-      Avoid possible crash when decompressing corrupted data
-      (Zdenek Kotala)
-     
-    
-
-    
-     
-      Repair two places where SIGTERM exit of a backend could leave corrupted
-      state in shared memory (Tom)
-     
-
-     
-      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.
-     
-    
-
-    
-     
-      Fix conversions between ISO-8859-5 and other encodings to handle
-      Cyrillic Yo characters (e and E with
-      two dots) (Sergey Burladyan)
-     
-    
-
-    
-     
-      Fix several datatype input functions, notably array_in(),
-      that were allowing unused bytes in their results to contain
-      uninitialized, unpredictable values (Tom)
-     
-
-     
-      This could lead to failures in which two apparently identical literal
-      values were not seen as equal, resulting in the parser complaining
-      about unmatched ORDER BY and DISTINCT
-      expressions.
-     
-    
-
-    
-     
-      Fix a corner case in regular-expression substring matching
-      (substring(string from
-      pattern)) (Tom)
-     
-
-     
-      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
-      substring('foo' from 'foo(bar)?').
-      This should return NULL, since (bar) isn't matched, but
-      it was mistakenly returning the whole-pattern match instead (ie,
-      foo).
-     
-    
-
-    
-     
-      Update time zone data files to tzdata release 2008c (for
-      DST law changes in Morocco, Iraq, Choibalsan, Pakistan, Syria, Cuba, and
-      Argentina/San_Luis)
-     
-    
-
-    
-     
-      Fix incorrect result from ecpg's
-      PGTYPEStimestamp_sub() function (Michael)
-     
-    
-
-    
-     
-      Fix broken GiST comparison function for contrib/tsearch2's
-      tsquery type (Teodor)
-     
-    
-
-    
-     
-      Fix possible crashes in contrib/cube functions (Tom)
-     
-    
-
-    
-     
-      Fix core dump in contrib/xml2's
-      xpath_table() function when the input query returns a
-      NULL value (Tom)
-     
-    
-
-    
-     
-      Fix contrib/xml2's makefile to not override
-      CFLAGS (Tom)
-     
-    
-
-    
-     
-      Fix DatumGetBool macro to not fail with gcc
-      4.3 (Tom)
-     
-
-     
-      This problem affects 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.
-     
-    
-
-   
-
-  
-
-  Release 8.2.7
-
-  
-  Release date
-  2008-03-17
-  
-
-  
-   This release contains a variety of fixes from 8.2.6.
-   For information about new features in the 8.2 major release, see
-   .
-  
-
-  
-   Migration to Version 8.2.7
-
-   
-    A dump/restore is not required for those running 8.2.X.
-    However, you might need to REINDEX indexes on textual
-    columns after updating, if you are affected by the Windows locale
-    issue described below.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Fix character string comparison for Windows locales that consider
-      different character combinations as equal (Tom)
-     
-
-     
-      This fix applies only on Windows and only when using UTF-8
-      database encoding.  The same fix was made for all other cases
-      over two years ago, but Windows with UTF-8 uses a separate code
-      path that was not updated.  If you are using a locale that
-      considers some non-identical strings as equal, you may need to
-      REINDEX to fix existing indexes on textual columns.
-     
-    
-
-    
-     
-      Repair potential deadlock between concurrent VACUUM FULL
-      operations on different system catalogs (Tom)
-     
-    
-
-    
-     
-      Fix longstanding LISTEN/NOTIFY
-      race condition (Tom)
-     
-
-     
-      In rare cases a session that had just executed a
-      LISTEN might not get a notification, even though
-      one would be expected because the concurrent transaction executing
-      NOTIFY was observed to commit later.
-     
-
-     
-      A side effect of the fix is that a transaction that has executed
-      a not-yet-committed LISTEN command will not see any
-      row in pg_listener for the 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.
-     
-    
-
-    
-     
-      Disallow LISTEN and UNLISTEN within a
-      prepared transaction (Tom)
-     
-
-     
-      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 UNLISTEN remained uncommitted.
-     
-    
-
-    
-     
-      Disallow dropping a temporary table within a
-      prepared transaction (Heikki)
-     
-
-     
-      This was correctly disallowed by 8.1, but the check was inadvertently
-      broken in 8.2.
-     
-    
-
-    
-     
-      Fix rare crash when an error occurs during a query using a hash index
-      (Heikki)
-     
-    
-
-    
-     
-      Fix memory leaks in certain usages of set-returning functions (Neil)
-     
-    
-
-    
-     
-      Fix input of datetime values for February 29 in years BC (Tom)
-     
-
-     
-      The former coding was mistaken about which years were leap years.
-     
-    
-
-    
-     
-      Fix unrecognized node type error in some variants of
-      ALTER OWNER (Tom)
-     
-    
-
-    
-     
-      Ensure pg_stat_activity.waiting flag
-      is cleared when a lock wait is aborted (Tom)
-     
-    
-
-    
-     
-      Fix handling of process permissions on Windows Vista (Dave, Magnus)
-     
-
-     
-      In particular, this fix allows starting the server as the Administrator
-      user.
-     
-    
-
-    
-     
-      Update time zone data files to tzdata release 2008a
-      (in particular, recent Chile changes); adjust timezone abbreviation
-      VET (Venezuela) to mean UTC-4:30, not UTC-4:00 (Tom)
-     
-    
-
-    
-     
-      Fix pg_ctl to correctly extract the postmaster's port
-      number from command-line options (Itagaki Takahiro, Tom)
-     
-
-     
-      Previously, pg_ctl start -w could try to contact the
-      postmaster on the wrong port, leading to bogus reports of startup
-      failure.
-     
-    
-
-    
-     
-      Use 
-      in recent gcc versions (Tom)
-     
-
-     
-      This is known to be necessary when building PostgreSQL
-      with gcc 4.3 or later.
-     
-    
-
-
-    
-     
-      Correctly enforce statement_timeout values longer
-      than INT_MAX microseconds (about 35 minutes) (Tom)
-     
-
-     
-      This bug affects only builds with 
-     
-    
-
-    
-     
-      Fix unexpected PARAM_SUBLINK ID planner error when
-      constant-folding simplifies a sub-select (Tom)
-     
-    
-
-    
-     
-      Fix logical errors in constraint-exclusion handling of IS
-      NULL and NOT expressions (Tom)
-     
-
-     
-      The planner would sometimes exclude partitions that should not
-      have been excluded because of the possibility of NULL results.
-     
-    
-
-    
-     
-      Fix another cause of failed to build any N-way joins
-      planner errors (Tom)
-     
-
-     
-      This could happen in cases where a clauseless join needed to be
-      forced before a join clause could be exploited.
-     
-    
-
-    
-     
-      Fix incorrect constant propagation in outer-join planning (Tom)
-     
-
-     
-      The planner could sometimes incorrectly conclude that a variable
-      could be constrained to be equal to a constant, leading
-      to wrong query results.
-     
-    
-
-    
-     
-      Fix display of constant expressions in ORDER BY
-      and GROUP BY (Tom)
-     
-
-     
-      An explictly casted constant would be shown incorrectly.  This could
-      for example lead to corruption of a view definition during
-      dump and reload.
-     
-    
-
-    
-     
-      Fix libpq to handle NOTICE messages correctly
-      during COPY OUT (Tom)
-     
-
-     
-      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.
-     
-    
-
-   
-
-  
-
-  Release 8.2.6
-
-  
-  Release date
-  2008-01-07
-  
-
-  
-   This release contains a variety of fixes from 8.2.5,
-   including fixes for significant security issues.
-   For information about new features in the 8.2 major release, see
-   .
-  
-
-  
-   Migration to Version 8.2.6
-
-   
-    A dump/restore is not required for those running 8.2.X.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Prevent functions in indexes from executing with the privileges of
-      the user running VACUUM, ANALYZE, etc (Tom)
-     
-
-     
-      Functions used in index expressions and partial-index
-      predicates are evaluated whenever a new table entry is made.  It has
-      long been understood that this poses a risk of trojan-horse code
-      execution if one modifies a table owned by an untrustworthy user.
-      (Note that triggers, defaults, check constraints, etc. pose the
-      same type of risk.)  But functions in indexes pose extra danger
-      because they will be executed by routine maintenance operations
-      such as VACUUM FULL, which are commonly performed
-      automatically under a superuser account.  For example, a nefarious user
-      can execute code with superuser privileges by setting up a
-      trojan-horse index definition and waiting for the next routine vacuum.
-      The fix arranges for standard maintenance operations
-      (including VACUUM, ANALYZE, REINDEX,
-      and CLUSTER) to execute as the table owner rather than
-      the calling user, using the same privilege-switching mechanism already
-      used for SECURITY DEFINER functions.  To prevent bypassing
-      this security measure, execution of SET SESSION
-      AUTHORIZATION and SET ROLE is now forbidden within a
-      SECURITY DEFINER context.  (CVE-2007-6600)
-     
-    
-
-    
-     
-      Repair assorted bugs in the regular-expression package (Tom, Will Drewry)
-     
-
-     
-      Suitably crafted regular-expression patterns could cause crashes,
-      infinite or near-infinite looping, and/or massive memory consumption,
-      all of which pose denial-of-service hazards for applications that
-      accept regex search patterns from untrustworthy sources.
-      (CVE-2007-4769, CVE-2007-4772, CVE-2007-6067)
-     
-    
-
-    
-     
-      Require non-superusers who use /contrib/dblink to use only
-      password authentication, as a security measure (Joe)
-     
-
-     
-      The fix that appeared for this in 8.2.5 was incomplete, as it plugged
-      the hole for only some dblink functions.  (CVE-2007-6601,
-      CVE-2007-3278)
-     
-    
-
-    
-     
-      Fix bugs in WAL replay for GIN indexes (Teodor)
-     
-    
-
-    
-     
-      Fix GIN index build to work properly when
-      maintenance_work_mem is 4GB or more (Tom)
-     
-    
-
-    
-     
-      Update time zone data files to tzdata release 2007k
-      (in particular, recent Argentina changes) (Tom)
-     
-    
-
-    
-     
-      Improve planner's handling of LIKE/regex estimation in non-C locales
-      (Tom)
-     
-    
-
-    
-     
-      Fix planning-speed problem for deep outer-join nests, as well as
-      possible poor choice of join order (Tom)
-     
-    
-
-    
-     
-      Fix planner failure in some cases of WHERE false AND var IN
-      (SELECT ...) (Tom)
-     
-    
-
-    
-     
-      Make CREATE TABLE ... SERIAL and
-      ALTER SEQUENCE ... OWNED BY not change the
-      currval() state of the sequence (Tom)
-     
-    
-
-    
-     
-      Preserve the tablespace and storage parameters of indexes that are
-      rebuilt by ALTER TABLE ... ALTER COLUMN TYPE (Tom)
-     
-    
-
-    
-     
-      Make archive recovery always start a new WAL timeline, rather than only
-      when a recovery stop time was used (Simon)
-     
-
-     
-      This avoids a corner-case risk of trying to overwrite an existing
-      archived copy of the last WAL segment, and seems simpler and cleaner
-      than the original definition.
-     
-    
-
-    
-     
-      Make VACUUM not use all of maintenance_work_mem
-      when the table is too small for it to be useful (Alvaro)
-     
-    
-
-    
-     
-      Fix potential crash in translate() when using a multibyte
-      database encoding (Tom)
-     
-    
-
-    
-     
-      Make corr() return the correct result for negative
-      correlation values (Neil)
-     
-    
-
-    
-     
-      Fix overflow in extract(epoch from interval) for intervals
-      exceeding 68 years (Tom)
-     
-    
-
-    
-     
-      Fix PL/Perl to not fail when a UTF-8 regular expression is used
-      in a trusted function (Andrew)
-     
-    
-
-    
-     
-      Fix PL/Perl to cope when platform's Perl defines type bool
-      as int rather than char (Tom)
-     
-
-     
-      While this could theoretically happen anywhere, no standard build of
-      Perl did things this way ... until Mac OS X 10.5.
-     
-    
-
-    
-     
-      Fix PL/Python to work correctly with Python 2.5 on 64-bit machines
-      (Marko Kreen)
-     
-    
-
-    
-     
-      Fix PL/Python to not crash on long exception messages (Alvaro)
-     
-    
-
-    
-     
-      Fix pg_dump to correctly handle inheritance child tables
-      that have default expressions different from their parent's (Tom)
-     
-    
-
-    
-     
-      Fix libpq crash when PGPASSFILE refers
-      to a file that is not a plain file (Martin Pitt)
-     
-    
-
-    
-     
-      ecpg parser fixes (Michael)
-     
-    
-
-    
-     
-      Make contrib/pgcrypto defend against
-      OpenSSL libraries that fail on keys longer than 128
-      bits; which is the case at least on some Solaris versions (Marko Kreen)
-     
-    
-
-    
-     
-      Make contrib/tablefunc's crosstab() handle
-      NULL rowid as a category in its own right, rather than crashing (Joe)
-     
-    
-
-    
-     
-      Fix tsvector and tsquery output routines to
-      escape backslashes correctly (Teodor, Bruce)
-     
-    
-
-    
-     
-      Fix crash of to_tsvector() on huge input strings (Teodor)
-     
-    
-
-    
-     
-      Require a specific version of Autoconf to be used
-      when re-generating the configure script (Peter)
-     
-
-     
-      This affects developers and packagers only.  The change was made
-      to prevent accidental use of untested combinations of
-      Autoconf and PostgreSQL versions.
-      You can remove the version check if you really want to use a
-      different Autoconf version, but it's
-      your responsibility whether the result works or not.
-     
-    
-
-    
-     
-      Update gettimeofday configuration check so that
-      PostgreSQL can be built on newer versions of
-      MinGW (Magnus)
-     
-    
-
-   
-
-  
-
-  Release 8.2.5
-
-  
-  Release date
-  2007-09-17
-  
-
-  
-   This release contains a variety of fixes from 8.2.4.
-   For information about new features in the 8.2 major release, see
-   .
-  
-
-  
-   Migration to Version 8.2.5
-
-   
-    A dump/restore is not required for those running 8.2.X.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Prevent index corruption when a transaction inserts rows and
-      then aborts close to the end of a concurrent VACUUM
-      on the same table (Tom)
-     
-    
-
-    
-     
-      Fix ALTER DOMAIN ADD CONSTRAINT for cases involving
-      domains over domains (Tom)
-     
-    
-
-    
-     
-      Make CREATE DOMAIN ... DEFAULT NULL work properly (Tom)
-     
-    
-
-    
-     
-      Fix some planner problems with outer joins, notably poor
-      size estimation for t1 LEFT JOIN t2 WHERE t2.col IS NULL
-      (Tom)
-     
-    
-
-    
-     
-      Allow the interval data type to accept input consisting only of
-      milliseconds or microseconds (Neil)
-     
-    
-
-    
-     
-      Allow timezone name to appear before the year in timestamp input (Tom)
-     
-    
-
-    
-     
-      Fixes for GIN indexes used by /contrib/tsearch2 (Teodor)
-     
-    
-
-    
-     
-      Speed up rtree index insertion (Teodor)
-     
-    
-
-    
-     
-      Fix excessive logging of SSL error messages (Tom)
-     
-    
-
-    
-     
-      Fix logging so that log messages are never interleaved when using
-      the syslogger process (Andrew)
-     
-    
-
-    
-     
-      Fix crash when log_min_error_statement logging runs out
-      of memory (Tom)
-     
-    
-
-    
-     
-      Fix incorrect handling of some foreign-key corner cases (Tom)
-     
-    
-
-    
-     
-      Fix stddev_pop(numeric) and var_pop(numeric) (Tom)
-     
-    
-
-    
-     
-      Prevent REINDEX and CLUSTER from failing
-      due to attempting to process temporary tables of other sessions (Alvaro)
-     
-    
-
-    
-     
-      Update the time zone database rules, particularly New Zealand's upcoming changes (Tom)
-     
-    
-
-    
-     
-      Windows socket and semaphore improvements (Magnus)
-     
-    
-
-    
-     
-      Make pg_ctl -w work properly in Windows service mode (Dave Page)
-     
-    
-
-    
-     
-      Fix memory allocation bug when using MIT Kerberos on Windows (Magnus)
-     
-    
-
-    
-     
-      Suppress timezone name (%Z) in log timestamps on Windows
-      because of possible encoding mismatches (Tom)
-     
-    
-
-    
-     
-      Require non-superusers who use /contrib/dblink to use only
-      password authentication, as a security measure (Joe)
-     
-    
-
-    
-     
-      Restrict /contrib/pgstattuple functions to superusers, for security reasons (Tom)
-     
-    
-
-    
-     
-      Do not let /contrib/intarray try to make its GIN opclass
-      the default (this caused problems at dump/restore) (Tom)
-     
-    
-
-   
-
-  
-
-  Release 8.2.4
-
-  
-  Release date
-  2007-04-23
-  
-
-  
-   This release contains a variety of fixes from 8.2.3,
-   including a security fix.
-   For information about new features in the 8.2 major release, see
-   .
-  
-
-  
-   Migration to Version 8.2.4
-
-   
-    A dump/restore is not required for those running 8.2.X.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Support explicit placement of the temporary-table schema within
-      search_path, and disable searching it for functions
-      and operators (Tom)
-     
-
-     
-      This is needed to allow a security-definer function to set a
-      truly secure value of search_path.  Without it,
-      an unprivileged SQL user can use temporary objects to execute code
-      with the privileges of the security-definer function (CVE-2007-2138).
-      See CREATE FUNCTION for more information.
-     
-    
-
-    
-     
-      Fix shared_preload_libraries for Windows
-      by forcing reload in each backend (Korry Douglas)
-     
-    
-
-    
-     
-      Fix to_char() so it properly upper/lower cases localized day or month
-      names (Pavel Stehule)
-     
-    
-
-    
-     
-      /contrib/tsearch2 crash fixes (Teodor)
-     
-    
-
-    
-     
-      Require COMMIT PREPARED to be executed in the same
-      database as the transaction was prepared in (Heikki)
-     
-    
-
-    
-     
-      Allow pg_dump to do binary backups larger than two gigabytes
-      on Windows (Magnus)
-     
-    
-
-    
-     
-      New traditional (Taiwan) Chinese FAQ (Zhou Daojing)
-     
-    
-
-    
-     
-      Prevent the statistics collector from writing to disk too frequently (Tom)
-     
-    
-
-    
-     
-      Fix potential-data-corruption bug in how VACUUM FULL handles
-      UPDATE chains (Tom, Pavan Deolasee)
-     
-    
-
-    
-     
-      Fix bug in domains that use array types (Tom)
-     
-    
-
-    
-     
-      Fix pg_dump so it can dump a serial column's sequence
-      using 
-      (Tom)
-     
-    
-
-    
-     
-      Planner fixes, including improving outer join and bitmap scan
-      selection logic (Tom)
-     
-    
-
-    
-     
-      Fix possible wrong answers or crash when a PL/pgSQL function tries
-      to RETURN from within an EXCEPTION block
-      (Tom)
-     
-    
-
-    
-     
-      Fix PANIC during enlargement of a hash index (Tom)
-     
-    
-
-    
-     
-      Fix POSIX-style timezone specs to follow new USA DST rules (Tom)
-     
-    
-
-   
-
-  
-
-  Release 8.2.3
-
-  
-  Release date
-  2007-02-07
-  
-
-  
-   This release contains two fixes from 8.2.2.
-   For information about new features in the 8.2 major release, see
-   .
-  
-
-  
-   Migration to Version 8.2.3
-
-   
-    A dump/restore is not required for those running 8.2.X.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Remove overly-restrictive check for type length in constraints and
-      functional indexes(Tom)
-     
-    
-
-    
-     
-      Fix optimization so MIN/MAX in subqueries can again use indexes (Tom)
-     
-    
-
-   
-
-  
-
-  Release 8.2.2
-
-  
-  Release date
-  2007-02-05
-  
-
-  
-   This release contains a variety of fixes from 8.2.1, including
-   a security fix.
-   For information about new features in the 8.2 major release, see
-   .
-  
-
-  
-   Migration to Version 8.2.2
-
-   
-    A dump/restore is not required for those running 8.2.X.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Remove security vulnerabilities that allowed connected users
-      to read backend memory (Tom)
-     
-
-     
-      The vulnerabilities involve suppressing the normal check that a SQL
-      function returns the data type it's declared to, and changing the
-      data type of a table column (CVE-2007-0555, CVE-2007-0556).  These
-      errors 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.
-     
-    
-
-    
-     
-      Fix not-so-rare-anymore bug wherein btree index page splits could fail
-      due to choosing an infeasible split point (Heikki Linnakangas)
-     
-    
-
-    
-     
-      Fix Borland C compile scripts (L Bayuk)
-     
-    
-
-    
-     
-      Properly handle to_char('CC') for years ending in
-      00 (Tom)
-     
-
-     
-      Year 2000 is in the twentieth century, not the twenty-first.
-     
-    
-
-    
-     
-      /contrib/tsearch2 localization improvements (Tatsuo, Teodor)
-     
-    
-
-    
-     
-      Fix incorrect permission check in
-      information_schema.key_column_usage view (Tom)
-     
-
-     
-      The symptom is relation with OID nnnnn does not exist errors.
-      To get this fix without using initdb, use CREATE OR
-      REPLACE VIEW to install the corrected definition found in
-      share/information_schema.sql.  Note you will need to do
-      this in each database.
-     
-    
-
-    
-     
-      Improve VACUUM performance for databases with many tables (Tom)
-     
-    
-
-    
-     
-      Fix for rare Assert() crash triggered by UNION (Tom)
-     
-    
-
-    
-     
-      Fix potentially incorrect results from index searches using
-      ROW inequality conditions (Tom)
-     
-    
-
-    
-     
-      Tighten security of multi-byte character processing for UTF8 sequences
-      over three bytes long (Tom)
-     
-    
-
-    
-     
-      Fix bogus permission denied failures occurring on Windows
-      due to attempts to fsync already-deleted files (Magnus, Tom)
-     
-    
-
-    
-     
-      Fix bug that could cause the statistics collector
-      to hang on Windows (Magnus)
-     
-
-     
-      This would in turn lead to autovacuum not working.
-     
-    
-
-    
-     
-      Fix possible crashes when an already-in-use PL/pgSQL function is
-      updated (Tom)
-     
-    
-
-    
-     
-      Improve PL/pgSQL handling of domain types (Sergiy Vyshnevetskiy, Tom)
-     
-    
-
-    
-     
-      Fix possible errors in processing PL/pgSQL exception blocks (Tom)
-     
-    
-
-   
-
-  
-
-  Release 8.2.1
-
-  
-  Release date
-  2007-01-08
-  
-
-  
-   This release contains a variety of fixes from 8.2.
-   For information about new features in the 8.2 major release, see
-   .
-  
-
-  
-   Migration to Version 8.2.1
-
-   
-    A dump/restore is not required for those running 8.2.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Fix crash with SELECT ... LIMIT ALL (also
-      LIMIT NULL) (Tom)
-     
-    
-
-    
-     
-      Several /contrib/tsearch2 fixes (Teodor)
-     
-    
-
-    
-     
-      On Windows, make log messages coming from the operating system use
-      ASCII encoding (Hiroshi Saito)
-     
-
-     
-      This fixes a conversion problem when there is a mismatch between
-      the encoding of the operating system and database server.
-     
-    
-
-    
-     
-      Fix Windows linking of pg_dump using
-      win32.mak
-      (Hiroshi Saito)
-     
-    
-
-    
-     
-      Fix planner mistakes for outer join queries (Tom)
-     
-    
-
-    
-     
-      Fix several problems in queries involving sub-SELECTs (Tom)
-     
-    
-
-    
-     
-      Fix potential crash in SPI during subtransaction abort (Tom)
-     
-
-     
-      This affects all PL functions since they all use SPI.
-     
-    
-
-    
-     
-      Improve build speed of PDF documentation (Peter)
-     
-    
-
-    
-     
-      Re-add JST (Japan) timezone abbreviation (Tom)
-     
-    
-
-    
-     
-      Improve optimization decisions related to index scans (Tom)
-     
-    
-
-    
-     
-      Have psql print multi-byte combining characters as
-      before, rather than output as \u (Tom)
-     
-    
-
-    
-     
-      Improve index usage of regular expressions that use parentheses (Tom)
-     
-
-     
-      This improves psql \d performance also.
-     
-    
-
-    
-     
-      Make pg_dumpall assume that databases have public
-      CONNECT privilege, when dumping from a pre-8.2 server (Tom)
-     
-
-     
-      This preserves the previous behavior that anyone can connect to a
-      database if allowed by pg_hba.conf.
-     
-    
-
-   
-
-  
-
-  Release 8.2
-
-  
-   Release date
-   2006-12-05
-  
-
-  
-   Overview
-
-   
-    This release adds many functionality and performance improvements that
-    were requested by users, including:
-
-   
-
-     
-      
-       Query language enhancements including INSERT/UPDATE/DELETE
-       RETURNING, multirow VALUES lists, and
-       optional target-table alias in
-       UPDATE/DELETE
-      
-     
-
-     
-      
-       Index creation without blocking concurrent
-       INSERT/UPDATE/DELETE
-       operations
-      
-     
-
-     
-      
-       Many query optimization improvements, including support for
-       reordering outer joins
-      
-     
-
-     
-      
-       Improved sorting performance with lower memory usage
-      
-     
-
-     
-      
-       More efficient locking with better concurrency
-      
-     
-
-     
-      
-       More efficient vacuuming
-      
-     
-
-     
-      
-       Easier administration of warm standby servers
-      
-     
-
-     
-      
-       New FILLFACTOR support for tables and indexes
-      
-     
-
-     
-      
-       Monitoring, logging, and performance tuning additions
-      
-     
-
-     
-      
-       More control over creating and dropping objects
-      
-     
-
-     
-      
-       Table inheritance relationships can be defined
-       for and removed from pre-existing tables
-      
-     
-
-     
-      
-       COPY TO can copy the output of an arbitrary
-       SELECT statement
-      
-     
-
-     
-      
-       Array improvements, including nulls in arrays
-      
-     
-
-     
-      
-       Aggregate-function improvements, including multiple-input
-       aggregates and SQL:2003 statistical functions
-      
-     
-
-     
-      
-       Many contrib/ improvements
-      
-     
-
-    
-
-   
-
-  
-
-  
-   Migration to Version 8.2
-
-   
-    A dump/restore using pg_dump is
-    required for those wishing to migrate data from any previous
-    release.
-   
-
-   
-    Observe the following incompatibilities:
-   
-
-   
-
-     
-      
-       Set 
-       linkend="guc-escape-string-warning">escape_string_warning
-       to on by default (Bruce)
-      
-
-      
-       This issues a warning if backslash escapes are used in
-       non-escape (non-E'')
-       strings.
-      
-     
-
-     
-      
-       Change the row
-       constructor syntax (ROW(...)) so that
-       list elements foo.* will be expanded to a list
-       of their member fields, rather than creating a nested
-       row type field as formerly (Tom)
-      
-
-      
-       The new behavior is substantially more useful since it
-       allows, for example, triggers to check for data changes
-       with IF row(new.*) IS DISTINCT FROM row(old.*).
-       The old behavior is still available by omitting .*.
-      
-     
-
-     
-      
-       Make row comparisons
-       follow SQL standard semantics and allow them
-       to be used in index scans (Tom)
-      
-
-      
-       Previously, row = and <> comparisons followed the
-       standard but < <= > >= did not.  A row comparison
-       can now be used as an index constraint for a multicolumn
-       index matching the row value.
-      
-     
-
-     
-      
-       Make row IS NOT NULL
-       tests follow SQL standard semantics (Tom)
-      
-
-      
-       The former behavior conformed to the standard for simple cases
-       with IS NULL, but IS NOT NULL would return
-       true if any row field was non-null, whereas the standard says it
-       should return true only when all fields are non-null.
-      
-     
-
-     
-      
-       Make SET
-       CONSTRAINT affect only one constraint (Kris Jurka)
-      
-
-      
-       In previous releases, SET CONSTRAINT modified
-       all constraints with a matching name.  In this release,
-       the schema search path is used to modify only the first
-       matching constraint.  A schema specification is also
-       supported.  This more nearly conforms to the SQL standard.
-      
-     
-
-     
-      
-       Remove RULE permission for tables, for security reasons
-       (Tom)
-      
-
-      
-       As of this release, only a table's owner can create or modify
-       rules for the table.  For backwards compatibility,
-       GRANT/REVOKE RULE is still accepted,
-       but it does nothing.
-      
-     
-
-     
-      
-       Array comparison improvements (Tom)
-      
-
-      
-       Now array dimensions are also compared.
-      
-     
-
-     
-      
-       Change array concatenation
-       to match documented behavior (Tom)
-      
-
-      
-       This changes the previous behavior where concatenation
-       would modify the array lower bound.
-      
-     
-
-     
-      
-       Make command-line options of postmaster
-       and postgres
-       identical (Peter)
-      
-
-      
-       This allows the postmaster to pass arguments to each backend
-       without using -o.  Note that some options are now
-       only available as long-form options, because there were conflicting
-       single-letter options.
-      
-     
-
-     
-      
-       Deprecate use of postmaster symbolic link (Peter)
-      
-
-      
-       postmaster and postgres
-       commands now act identically, with the behavior determined
-       by command-line options.  The postmaster symbolic link is
-       kept for compatibility, but is not really needed.
-      
-     
-
-     
-      
-       Change 
-       linkend="guc-log-duration">log_duration
-       to output even if the query is not output (Tom)
-      
-
-      
-       In prior releases, log_duration only printed if
-       the query appeared earlier in the log.
-      
-     
-
-     
-      
-       Make 
-       linkend="functions-formatting">to_char(time)
-       and 
-       linkend="functions-formatting">to_char(interval)
-       treat HH and HH12 as 12-hour
-       intervals
-      
-
-      
-       Most applications should use HH24 unless they
-       want a 12-hour display.
-      
-     
-
-     
-      
-       Zero unmasked bits in conversion from 
-       linkend="datatype-inet">INET to 
-       linkend="datatype-inet">CIDR (Tom)
-      
-
-      
-       This ensures that the converted value is actually valid for
-       CIDR.
-      
-     
-
-     
-      
-       Remove australian_timezones configuration variable
-       (Joachim Wieland)
-      
-
-      
-       This variable has been superseded by a more general facility
-       for configuring timezone abbreviations.
-      
-     
-
-     
-      
-       Improve cost estimation for nested-loop index scans (Tom)
-      
-
-      
-       This might eliminate the need to set unrealistically small
-       values of 
-       linkend="guc-random-page-cost">random_page_cost.
-       If you have been using a very small random_page_cost,
-       please recheck your test cases.
-      
-     
-
-     
-      
-       Change behavior of pg_dump -n and
-       -t options.  (Greg Sabino Mullane)
-      
-      
-       See the pg_dump manual page for details.
-      
-     
-
-     
-      
-       Change libpq
-       PQdsplen() to return a useful value (Martijn
-       van Oosterhout)
-      
-     
-
-     
-      
-       Declare libpq
-       PQgetssl() as returning void *,
-       rather than SSL * (Martijn van Oosterhout)
-      
-
-      
-       This allows applications to use the function without including
-       the OpenSSL headers.
-      
-     
-
-     
-      
-       C-language loadable modules must now include a
-       PG_MODULE_MAGIC
-       macro call for version compatibility checking
-       (Martijn van Oosterhout)
-      
-     
-
-     
-      
-       For security's sake, modules used by a PL/PerlU function are no
-       longer available to PL/Perl functions (Andrew)
-      
-      
-       
-        This also implies that data can no longer be shared between a PL/Perl
-        function and a PL/PerlU function.
-        Some Perl installations have not been compiled with the correct flags
-        to allow multiple interpreters to exist within a single process.
-        In this situation PL/Perl and PL/PerlU cannot both be used in a
-        single backend. The solution is to get a Perl installation which
-        supports multiple interpreters.
-       
-      
-     
-
-     
-      
-       In contrib/xml2/, rename xml_valid() to
-       xml_is_well_formed() (Tom)
-      
-
-      
-       xml_valid() will remain for backward compatibility,
-       but its behavior will change to do schema checking in a future
-       release.
-      
-     
-
-     
-      
-       Remove contrib/ora2pg/, now at 
-       url="http://www.samse.fr/GPL/ora2pg">
-      
-     
-
-     
-      
-       Remove contrib modules that have been migrated to PgFoundry:
-       adddepend, dbase, dbmirror,
-       fulltextindex, mac, userlock
-      
-     
-
-     
-      
-       Remove abandoned contrib modules:
-       mSQL-interface, tips
-      
-     
-
-     
-      
-       Remove QNX and BEOS ports (Bruce)
-      
-
-      
-       These ports no longer had active maintainers.
-      
-     
-
-   
-  
-
-  
-   Changes
-
-   
-    Below you will find a detailed account of the
-    changes between PostgreSQL 8.2 and
-    the previous major release.
-   
-
-   
-    Performance Improvements
-    
-
-     
-      
-       Allow the planner to reorder outer
-       joins in some circumstances (Tom)
-      
-
-      
-       In previous releases, outer joins would always be evaluated in
-       the order written in the query. This change allows the
-       query optimizer to consider reordering outer joins, in cases where
-       it can determine that the join order can be changed without
-       altering the meaning of the query.  This can make a
-       considerable performance difference for queries involving
-       multiple outer joins or mixed inner and outer joins.
-      
-     
-
-     
-      
-       Improve efficiency of 
-       linkend="functions-comparisons">IN
-       (list-of-expressions) clauses (Tom)
-      
-     
-
-     
-      
-       Improve sorting speed and reduce memory usage (Simon, Tom)
-      
-     
-
-     
-      
-       Improve subtransaction performance (Alvaro, Itagaki Takahiro,
-       Tom)
-      
-     
-
-     
-      
-       Add FILLFACTOR to 
-       linkend="SQL-CREATETABLE">table and 
-       linkend="SQL-CREATEINDEX">index creation (ITAGAKI
-       Takahiro)
-      
-
-      
-       This leaves extra free space in each table or index page,
-       allowing improved performance as the database grows.  This
-       is particularly valuable to maintain clustering.
-      
-     
-
-     
-      
-       Increase default values for 
-       linkend="guc-shared-buffers">shared_buffers
-       and max_fsm_pages
-       (Andrew)
-      
-     
-
-     
-      
-       Improve locking performance by breaking the lock manager tables into
-       sections
-       (Tom)
-      
-
-      
-       This allows locking to be more fine-grained, reducing
-       contention.
-      
-     
-
-     
-      
-       Reduce locking requirements of sequential scans (Qingqing
-       Zhou)
-      
-     
-
-     
-      
-       Reduce locking required for database creation and destruction
-       (Tom)
-      
-     
-
-     
-      
-       Improve the optimizer's selectivity estimates for 
-       linkend="functions-like">LIKE, 
-       linkend="functions-like">ILIKE, and
-       regular expression
-       operations (Tom)
-      
-     
-
-     
-      
-       Improve planning of joins to inherited
-       tables and UNION
-       ALL views (Tom)
-      
-     
-
-     
-      
-       Allow constraint
-       exclusion to be applied to 
-       linkend="ddl-inherit">inherited UPDATE and
-       DELETE queries (Tom)
-      
-
-      
-       SELECT already honored constraint exclusion.
-      
-     
-
-     
-      
-       Improve planning of constant WHERE clauses, such as
-       a condition that depends only on variables inherited from an
-       outer query level (Tom)
-      
-     
-
-     
-      
-       Protocol-level unnamed prepared statements are re-planned
-       for each set of BIND values (Tom)
-      
-
-      
-       This improves performance because the exact parameter values
-       can be used in the plan.
-      
-     
-
-     
-      
-       Speed up vacuuming of B-Tree indexes (Heikki Linnakangas,
-       Tom)
-      
-     
-
-     
-      
-       Avoid extra scan of tables without indexes during 
-       linkend="SQL-VACUUM">VACUUM (Greg Stark)
-      
-     
-
-     
-      
-       Improve multicolumn GiST
-       indexing (Oleg, Teodor)
-      
-     
-
-     
-      
-       Remove dead index entries before B-Tree page split (Junji
-       Teramoto)
-      
-     
-
-    
-
-   
-
-   
-    Server Changes
-    
-
-     
-      
-       Allow a forced switch to a new transaction log file (Simon, Tom)
-      
-
-      
-       This is valuable for keeping warm standby slave servers
-       in sync with the master.  Transaction log file switching now also happens
-       automatically during 
-       linkend="functions-admin">pg_stop_backup().
-       This ensures that all
-       transaction log files needed for recovery can be archived immediately.
-      
-     
-
-     
-      
-       Add WAL informational functions (Simon)
-      
-
-      
-       Add functions for interrogating the current transaction log insertion
-       point and determining WAL filenames from the
-       hex WAL locations displayed by 
-       linkend="functions-admin">pg_stop_backup()
-       and related functions.
-      
-     
-
-     
-      
-       Improve recovery from a crash during WAL replay (Simon)
-      
-
-      
-       The server now does periodic checkpoints during WAL
-       recovery, so if there is a crash, future WAL
-       recovery is shortened.  This also eliminates the need for
-       warm standby servers to replay the entire log since the
-       base backup if they crash.
-      
-     
-
-     
-      
-       Improve reliability of long-term WAL replay
-       (Heikki, Simon, Tom)
-      
-
-      
-       Formerly, trying to roll forward through more than 2 billion
-       transactions would not work due to XID wraparound.  This meant
-       warm standby servers had to be reloaded
-       from fresh base backups periodically.
-      
-     
-
-     
-      
-       Add 
-       linkend="guc-archive-timeout">archive_timeout
-       to force transaction log file switches at a given interval (Simon)
-      
-
-      
-       This enforces a maximum replication delay for warm standby servers.
-      
-     
-
-     
-      
-       Add native LDAP
-       authentication (Magnus Hagander)
-      
-
-      
-       This is particularly useful for platforms that do not
-       support PAM, such as Windows.
-      
-     
-
-     
-      
-       Add GRANT
-       CONNECT ON DATABASE (Gevik Babakhani)
-      
-
-      
-       This gives SQL-level control over database access.  It works as
-       an additional filter on top of the existing
-       pg_hba.conf
-       controls.
-      
-     
-
-     
-      
-       Add support for SSL
-       Certificate Revocation List (CRL) files
-       (Libor Hohoš)
-      
-
-      
-       The server and libpq both recognize CRL
-       files now.
-      
-     
-
-     
-      
-       GiST indexes are
-       now clusterable (Teodor)
-      
-     
-
-     
-      
-       Remove routine autovacuum server log entries (Bruce)
-      
-
-      
-       
-       linkend="monitoring-stats-views-table">pg_stat_activity
-       now shows autovacuum activity.
-      
-     
-
-     
-      
-       Track maximum XID age within individual tables, instead of whole databases (Alvaro)
-      
-
-      
-       This reduces the overhead involved in preventing transaction
-       ID wraparound, by avoiding unnecessary VACUUMs.
-      
-     
-
-     
-      
-       Add last vacuum and analyze timestamp columns to the stats
-       collector (Larry Rosenman)
-      
-
-      
-       These values now appear in the 
-       linkend="monitoring-stats-views-table">pg_stat_*_tables
-       system views.
-      
-     
-
-     
-      
-       Improve performance of statistics monitoring, especially
-       stats_command_string
-       (Tom, Bruce)
-      
-
-      
-       This release enables stats_command_string by
-       default, now that its overhead is minimal.  This means
-       
-       linkend="monitoring-stats-views-table">pg_stat_activity
-       will now show all active queries by default.
-      
-     
-
-     
-      
-       Add a waiting column to 
-       linkend="monitoring-stats-views-table">pg_stat_activity
-       (Tom)
-      
-
-      
-       This allows pg_stat_activity to show all the
-       information included in the ps display.
-      
-     
-
-     
-      
-       Add configuration parameter 
-       linkend="guc-update-process-title">update_process_title
-       to control whether the ps display is updated
-       for every command (Bruce)
-      
-
-      
-       On platforms where it is expensive to update the ps
-       display, it might be worthwhile to turn this off and rely solely on
-       pg_stat_activity for status information.
-      
-     
-
-     
-      
-       Allow units to be specified in configuration settings
-       (Peter)
-      
-
-      
-       For example, you can now set 
-       linkend="guc-shared-buffers">shared_buffers
-       to 32MB rather than mentally converting sizes.
-      
-     
-
-     
-      
-       Add support for include
-       directives in postgresql.conf (Joachim
-       Wieland)
-      
-     
-
-     
-      
-       Improve logging of protocol-level prepare/bind/execute
-       messages (Bruce, Tom)
-      
-
-      
-       Such logging now shows statement names, bind parameter
-       values, and the text of the query being executed.  Also,
-       the query text is properly included in logged error messages
-       when enabled by log_min_error_statement.
-      
-     
-
-     
-      
-       Prevent 
-       linkend="guc-max-stack-depth">max_stack_depth
-       from being set to unsafe values
-      
-
-      
-       On platforms where we can determine the actual kernel stack depth
-       limit (which is most), make sure that the initial default value of
-       max_stack_depth is safe, and reject attempts to set it
-       to unsafely large values.
-      
-     
-
-     
-      
-       Enable highlighting of error location in query in more
-       cases (Tom)
-      
-
-      
-       The server is now able to report a specific error location for
-       some semantic errors (such as unrecognized column name), rather
-       than just for basic syntax errors as before.
-      
-     
-
-     
-      
-       Fix failed to re-find parent key errors in
-       VACUUM (Tom)
-      
-     
-
-     
-      
-       Clean out pg_internal.init cache files during server
-       restart (Simon)
-      
-
-      
-       This avoids a hazard that the cache files might contain stale
-       data after PITR recovery.
-      
-     
-
-     
-      
-       Fix race condition for truncation of a large relation across a
-       gigabyte boundary by VACUUM (Tom)
-      
-     
-
-     
-      
-       Fix bug causing needless deadlock errors on row-level locks (Tom)
-      
-     
-
-     
-      
-       Fix bugs affecting multi-gigabyte hash indexes (Tom)
-      
-     
-
-     
-      
-       Each backend process is now its own process group leader (Tom)
-      
-
-      
-       This allows query cancel to abort subprocesses invoked from a
-       backend or archive/recovery process.
-      
-     
-
-    
-
-   
-
-   
-    Query Changes
-    
-
-     
-      
-       Add INSERT/
-       linkend="SQL-UPDATE">UPDATE/
-       linkend="SQL-DELETE">DELETE
-       RETURNING (Jonah Harris, Tom)
-      
-
-      
-       This allows these commands to return values, such as the
-       computed serial key for a new row.  In the UPDATE
-       case, values from the updated version of the row are returned.
-      
-     
-
-     
-      
-       Add support for multiple-row 
-       linkend="queries-values">VALUES clauses,
-       per SQL standard (Joe, Tom)
-      
-
-      
-       This allows INSERT to insert multiple rows of
-       constants, or queries to generate result sets using constants.
-       For example, INSERT ...  VALUES (...), (...),
-       ...., and SELECT * FROM (VALUES (...), (...),
-       ....) AS alias(f1, ...).
-      
-     
-
-     
-      
-       Allow UPDATE
-       and DELETE
-       to use an alias for the target table (Atsushi Ogawa)
-      
-
-      
-       The SQL standard does not permit an alias in these commands, but
-       many database systems allow one anyway for notational convenience.
-      
-     
-
-     
-      
-       Allow UPDATE
-       to set multiple columns with a list of values (Susanne
-       Ebrecht)
-      
-
-      
-       This is basically a short-hand for assigning the columns
-       and values in pairs.  The syntax is UPDATE tab
-       SET (column, ...) = (val, ...).
-      
-     
-
-     
-      
-       Make row comparisons work per standard (Tom)
-      
-
-      
-       The forms <, <=, >, >= now compare rows lexicographically,
-       that is, compare the first elements, if equal compare the second
-       elements, and so on.  Formerly they expanded to an AND condition
-       across all the elements, which was neither standard nor very useful.
-      
-     
-
-     
-      
-       Add CASCADE
-       option to TRUNCATE (Joachim Wieland)
-      
-
-      
-       This causes TRUNCATE to automatically include all tables
-       that reference the specified table(s) via foreign keys.  While
-       convenient, this is a dangerous tool — use with caution!
-      
-     
-
-     
-      
-       Support FOR UPDATE and FOR SHARE
-       in the same SELECT
-       command (Tom)
-      
-     
-
-     
-      
-       Add IS NOT
-       DISTINCT FROM (Pavel Stehule)
-      
-
-      
-       This operator is similar to equality (=), but
-       evaluates to true when both left and right operands are
-       NULL, and to false when just one is, rather than
-       yielding NULL in these cases.
-      
-     
-
-     
-      
-       Improve the length output used by 
-       linkend="queries-union">UNION/INTERSECT/EXCEPT
-       (Tom)
-      
-
-      
-       When all corresponding columns are of the same defined length, that
-       length is used for the result, rather than a generic length.
-      
-     
-
-     
-      
-       Allow ILIKE
-       to work for multi-byte encodings (Tom)
-      
-
-      
-       Internally, ILIKE now calls lower()
-       and then uses LIKE.  Locale-specific regular
-       expression patterns still do not work in these encodings.
-      
-     
-
-     
-      
-       Enable 
-       linkend="guc-standard-conforming-strings">standard_conforming_strings
-       to be turned on (Kevin Grittner)
-      
-
-      
-       This allows backslash escaping in strings to be disabled,
-       making PostgreSQL more
-       standards-compliant.  The default is off for backwards
-       compatibility, but future releases will default this to on.
-      
-     
-
-     
-      
-       Do not flatten subqueries that contain volatile
-       functions in their target lists (Jaime Casanova)
-      
-
-      
-       This prevents surprising behavior due to multiple evaluation
-       of a volatile function (such as random()
-       or nextval()).  It might cause performance
-       degradation in the presence of functions that are unnecessarily
-       marked as volatile.
-      
-     
-
-     
-      
-       Add system views 
-       linkend="view-pg-prepared-statements">pg_prepared_statements
-       and 
-       linkend="view-pg-cursors">pg_cursors
-       to show prepared statements and open cursors (Joachim Wieland, Neil)
-      
-
-      
-       These are very useful in pooled connection setups.
-      
-     
-
-     
-      
-       Support portal parameters in 
-       linkend="SQL-EXPLAIN">EXPLAIN and 
-       linkend="SQL-EXECUTE">EXECUTE (Tom)
-      
-
-      
-       This allows, for example, JDBC ? parameters to
-       work in these commands.
-      
-     
-
-     
-      
-       If SQL-level 
-       linkend="SQL-PREPARE">PREPARE parameters
-       are unspecified, infer their types from the content of the
-       query (Neil)
-      
-
-      
-       Protocol-level PREPARE already did this.
-      
-     
-
-     
-      
-       Allow LIMIT and OFFSET to exceed
-       two billion (Dhanaraj M)
-      
-     
-
-    
-
-   
-
-   
-    Object Manipulation Changes
-    
-
-     
-      
-       Add TABLESPACE clause to 
-       linkend="SQL-CREATETABLEAS">CREATE TABLE AS
-       (Neil)
-      
-
-      
-       This allows a tablespace to be specified for the new table.
-      
-     
-
-     
-      
-       Add ON COMMIT clause to 
-       linkend="SQL-CREATETABLEAS">CREATE TABLE AS
-       (Neil)
-      
-
-      
-       This allows temporary tables to be truncated or dropped on
-       transaction commit.  The default behavior is for the table
-       to remain until the session ends.
-      
-     
-
-     
-      
-       Add INCLUDING CONSTRAINTS to 
-       linkend="SQL-CREATETABLE">CREATE TABLE LIKE
-       (Greg Stark)
-      
-
-      
-       This allows easy copying of CHECK constraints to a new
-       table.
-      
-     
-
-     
-      
-       Allow the creation of placeholder (shell) 
-       linkend="SQL-CREATETYPE">types (Martijn van Oosterhout)
-      
-
-      
-       A shell type declaration creates a type name, without specifying
-       any of the details of the type.  Making a shell type is useful
-       because it allows cleaner declaration of the type's input/output
-       functions, which must exist before the type can be defined for
-       real.  The syntax is CREATE TYPE 
-       class="parameter">typename.
-      
-     
-
-     
-      
-       Aggregate functions
-       now support multiple input parameters (Sergey Koposov, Tom)
-      
-     
-
-     
-      
-       Add new aggregate creation 
-       linkend="SQL-CREATEAGGREGATE">syntax (Tom)
-      
-
-      
-       The new syntax is CREATE AGGREGATE
-       aggname (input_type)
-       (parameter_list).  This more
-       naturally supports the new multi-parameter aggregate
-       functionality.  The previous syntax is still supported.
-      
-     
-
-     
-      
-       Add 
-       linkend="SQL-ALTERROLE">ALTER ROLE PASSWORD NULL
-       to remove a previously set role password (Peter)
-      
-     
-
-     
-      
-       Add DROP object IF EXISTS for many
-       object types (Andrew)
-      
-
-      
-       This allows DROP operations on non-existent
-       objects without generating an error.
-      
-     
-
-     
-      
-       Add DROP OWNED
-       to drop all objects owned by a role (Alvaro)
-      
-     
-
-     
-      
-       Add REASSIGN
-       OWNED to reassign ownership of all objects owned
-       by a role (Alvaro)
-      
-
-      
-       This, and DROP OWNED above, facilitate dropping
-       roles.
-      
-     
-
-     
-      
-       Add GRANT ON SEQUENCE
-       syntax (Bruce)
-      
-
-      
-       This was added for setting sequence-specific permissions.
-       GRANT ON TABLE for sequences is still supported
-       for backward compatibility.
-      
-     
-
-     
-      
-       Add USAGE
-       permission for sequences that allows only currval()
-       and nextval(), not setval()
-       (Bruce)
-      
-
-      
-       USAGE permission allows more fine-grained
-       control over sequence access.  Granting USAGE
-       allows users to increment
-       a sequence, but prevents them from setting the sequence to
-       an arbitrary value using setval().
-      
-     
-
-     
-      
-       Add ALTER TABLE
-       [ NO ] INHERIT (Greg Stark)
-      
-
-      
-       This allows inheritance to be adjusted dynamically, rather than
-       just at table creation and destruction.  This is very valuable
-       when using inheritance to implement table partitioning.
-      
-     
-
-     
-      
-       Allow comments on global
-       objects to be stored globally (Kris Jurka)
-      
-
-      
-       Previously, comments attached to databases were stored in individual
-       databases, making them ineffective, and there was no provision
-       at all for comments on roles or tablespaces.  This change adds a new
-       shared catalog 
-       linkend="catalog-pg-shdescription">pg_shdescription
-       and stores comments on databases, roles, and tablespaces therein.
-      
-     
-
-    
-
-   
-
-   
-    Utility Command Changes
-    
-
-     
-      
-       Add option to allow indexes to be created without blocking
-       concurrent writes to the table (Greg Stark, Tom)
-      
-
-      
-       The new syntax is CREATE
-       INDEX CONCURRENTLY.  The default behavior is
-       still to block table modification while a index is being
-       created.
-      
-     
-
-     
-      
-       Provide advisory
-       locking functionality (Abhijit Menon-Sen, Tom)
-      
-
-      
-       This is a new locking API designed to replace what used to be
-       in /contrib/userlock.  The userlock code is now on pgfoundry.
-      
-     
-
-     
-      
-       Allow COPY to
-       dump a SELECT query (Zoltan Boszormenyi, Karel
-       Zak)
-      
-
-      
-       This allows COPY to dump arbitrary SQL
-       queries. The syntax is COPY (SELECT ...) TO.
-      
-     
-
-     
-      
-       Make the COPY
-       command return a command tag that includes the number of
-       rows copied (Volkan YAZICI)
-      
-     
-
-     
-      
-       Allow VACUUM
-       to expire rows without being affected by other concurrent
-       VACUUM operations (Hannu Krossing, Alvaro, Tom)
-      
-     
-
-     
-      
-       Make initdb
-       detect the operating system locale and set the default
-       DateStyle accordingly (Peter)
-      
-
-      
-       This makes it more likely that the installed
-       postgresql.conf DateStyle value will
-       be as desired.
-      
-     
-
-     
-      
-       Reduce number of progress messages displayed by initdb (Tom)
-      
-     
-
-    
-
-   
-
-   
-    Date/Time Changes
-    
-
-     
-      
-       Allow full timezone names in 
-       linkend="datatype-datetime">timestamp input values
-       (Joachim Wieland)
-      
-
-      
-       For example, '2006-05-24 21:11
-       America/New_York'::timestamptz.
-      
-     
-
-     
-      
-       Support configurable timezone abbreviations (Joachim Wieland)
-      
-
-      
-       A desired set of timezone abbreviations can be chosen via the
-       configuration parameter 
-       linkend="guc-timezone-abbreviations">timezone_abbreviations.
-      
-     
-
-     
-      
-       Add 
-       linkend="view-pg-timezone-abbrevs">pg_timezone_abbrevs
-       and 
-       linkend="view-pg-timezone-names">pg_timezone_names
-       views to show supported timezones (Magnus Hagander)
-      
-     
-
-     
-      
-       Add 
-       linkend="functions-datetime-table">clock_timestamp(),
-       
-       linkend="functions-datetime-table">statement_timestamp(),
-       and 
-       linkend="functions-datetime-table">transaction_timestamp()
-       (Bruce)
-      
-
-      
-       clock_timestamp() is the current wall-clock time,
-       statement_timestamp() is the time the current
-       statement arrived at the server, and
-       transaction_timestamp() is an alias for
-       now().
-      
-     
-
-     
-      
-       Allow 
-       linkend="functions-formatting">to_char()
-       to print localized month and day names (Euler Taveira de
-       Oliveira)
-      
-     
-
-     
-      
-       Allow 
-       linkend="functions-formatting">to_char(time)
-       and 
-       linkend="functions-formatting">to_char(interval)
-       to output AM/PM specifications
-       (Bruce)
-      
-
-      
-       Intervals and times are treated as 24-hour periods, e.g.
-       25 hours is considered AM.
-      
-     
-
-     
-      
-       Add new function 
-       linkend="functions-datetime-table">justify_interval()
-       to adjust interval units (Mark Dilger)
-      
-     
-
-     
-      
-       Allow timezone offsets up to 14:59 away from GMT
-      
-
-      
-       Kiribati uses GMT+14, so we'd better accept that.
-      
-     
-
-     
-      
-       Interval computation improvements (Michael Glaesemann, Bruce)
-      
-     
-
-    
-
-   
-
-   
-    Other Data Type and Function Changes
-    
-
-     
-      
-       Allow arrays to contain NULL elements (Tom)
-      
-     
-
-     
-      
-       Allow assignment to array elements not contiguous with the existing
-       entries (Tom)
-      
-
-      
-       The intervening array positions will be filled with nulls.
-       This is per SQL standard.
-      
-     
-
-     
-      
-       New built-in operators
-       for array-subset comparisons (@>,
-       <@, &&) (Teodor, Tom)
-      
-
-      
-       These operators can be indexed for many data types using
-       GiST or GIN indexes.
-      
-     
-
-     
-      
-       Add convenient arithmetic 
-       linkend="cidr-inet-operators-table">operations on
-       INET/CIDR values (Stephen R. van den
-       Berg)
-      
-
-      
-       The new operators are & (and), |
-       (or), ~ (not), inet int8,
-       inet int8, and
-       inet inet.
-      
-     
-
-     
-      
-       Add new 
-       linkend="functions-aggregate-statistics-table">aggregate functions
-       from SQL:2003 (Neil)
-      
-
-      
-       The new functions are var_pop(),
-       var_samp(), stddev_pop(), and
-       stddev_samp().  var_samp() and
-       stddev_samp() are merely renamings of the
-       existing aggregates variance() and
-       stddev().  The latter names remain available
-       for backward compatibility.
-      
-     
-
-     
-      
-       Add SQL:2003 statistical 
-       linkend="functions-aggregate-statistics-table">aggregates
-       (Sergey Koposov)
-      
-
-      
-       New functions:  regr_intercept(),
-       regr_slope(), regr_r2(),
-       corr(), covar_samp(),
-       covar_pop(), regr_avgx(),
-       regr_avgy(), regr_sxy(),
-       regr_sxx(), regr_syy(),
-       regr_count().
-      
-     
-
-     
-      
-       Allow domains to be
-       based on other domains (Tom)
-      
-     
-
-     
-      
-       Properly enforce domain 
-       linkend="ddl-constraints">CHECK constraints
-       everywhere (Neil, Tom)
-      
-
-      
-       For example, the result of a user-defined function that is
-       declared to return a domain type is now checked against the
-       domain's constraints. This closes a significant hole in the domain
-       implementation.
-      
-     
-
-     
-      
-       Fix problems with dumping renamed 
-       linkend="datatype-serial">SERIAL columns
-       (Tom)
-      
-
-      
-       The fix is to dump a SERIAL column by explicitly
-       specifying its DEFAULT and sequence elements,
-       and reconstructing the SERIAL column on reload
-       using a new ALTER
-       SEQUENCE OWNED BY command.  This also allows
-       dropping a SERIAL column specification.
-      
-     
-
-     
-      
-       Add a server-side sleep function 
-       linkend="functions-datetime-delay">pg_sleep()
-       (Joachim Wieland)
-      
-     
-
-     
-      
-       Add all comparison operators for the 
-       linkend="datatype-oid">tid (tuple id) data
-       type (Mark Kirkwood, Greg Stark, Tom)
-      
-     
-
-    
-
-   
-
-   
-    PL/PgSQL Server-Side Language Changes
-    
-
-     
-      
-       Add TG_table_name and TG_table_schema to
-       trigger parameters (Andrew)
-      
-
-      
-       TG_relname is now deprecated.  Comparable
-       changes have been made in the trigger parameters for the other
-       PLs as well.
-      
-     
-
-     
-      
-       Allow FOR statements to return values to scalars
-       as well as records and row types (Pavel Stehule)
-      
-     
-
-     
-      
-       Add a BY clause to the FOR loop,
-       to control the iteration increment (Jaime Casanova)
-      
-     
-
-     
-      
-       Add STRICT to 
-       linkend="plpgsql-statements-sql-onerow">SELECT
-       INTO (Matt Miller)
-      
-
-      
-       STRICT mode throws an exception if more or less
-       than one row is returned by the SELECT, for
-       Oracle PL/SQL compatibility.
-      
-     
-
-    
-
-   
-
-   
-    PL/Perl Server-Side Language Changes
-    
-
-     
-      
-       Add table_name and table_schema to
-       trigger parameters (Adam Sjøgren)
-      
-     
-
-     
-      
-       Add prepared queries (Dmitry Karasik)
-      
-     
-
-     
-      
-       Make $_TD trigger data a global variable (Andrew)
-      
-
-      
-       Previously, it was lexical, which caused unexpected sharing
-       violations.
-      
-     
-
-     
-      
-       Run PL/Perl and PL/PerlU in separate interpreters, for security
-       reasons (Andrew)
-      
-      
-       In consequence, they can no longer share data nor loaded modules.
-       Also, if Perl has not been compiled with the requisite flags to
-       allow multiple interpreters, only one of these languages can be used
-       in any given backend process.
-      
-     
-
-    
-
-   
-
-   
-    PL/Python Server-Side Language Changes
-    
-
-     
-      
-       Named parameters are passed as ordinary variables, as well as in the
-       args[] array (Sven Suursoho)
-      
-     
-
-     
-      
-       Add table_name and table_schema to
-       trigger parameters (Andrew)
-      
-     
-
-     
-      
-       Allow returning of composite types and result sets (Sven Suursoho)
-      
-     
-
-     
-      
-       Return result-set as list, iterator,
-       or generator (Sven Suursoho)
-      
-     
-
-     
-      
-       Allow functions to return void (Neil)
-      
-     
-
-     
-      
-       Python 2.5 is now supported (Tom)
-      
-     
-
-    
-
-   
-
-   
-    <link linkend="APP-PSQL"><application>psql</></link> Changes
-    
-
-     
-      
-       Add new command \password for changing role
-       password with client-side password encryption (Peter)
-      
-     
-
-     
-      
-       Allow \c to connect to a new host and port
-       number (David, Volkan YAZICI)
-      
-     
-
-     
-      
-       Add tablespace display to \l+ (Philip Yarra)
-      
-     
-
-     
-      
-       Improve \df slash command to include the argument
-       names and modes (OUT or INOUT) of
-       the function (David Fetter)
-      
-     
-
-     
-      
-       Support binary COPY (Andreas Pflug)
-      
-     
-
-     
-      
-       Add option to run the entire session in a single transaction
-       (Simon)
-      
-
-      
-       Use option -1 or --single-transaction.
-      
-     
-
-     
-      
-       Support for automatically retrieving SELECT
-       results in batches using a cursor (Chris Mair)
-      
-
-      
-       This is enabled using \set FETCH_COUNT
-       n. This
-       feature allows large result sets to be retrieved in
-       psql without attempting to buffer the entire
-       result set in memory.
-      
-     
-
-     
-      
-       Make multi-line values align in the proper column
-       (Martijn van Oosterhout)
-      
-
-      
-       Field values containing newlines are now displayed in a more
-       readable fashion.
-      
-     
-
-     
-      
-       Save multi-line statements as a single entry, rather than
-       one line at a time (Sergey E. Koposov)
-      
-
-      
-       This makes up-arrow recall of queries easier.  (This is
-       not available on Windows, because that platform uses the native
-       command-line editing present in the operating system.)
-      
-     
-
-     
-      
-       Make the line counter 64-bit so it can handle files with more
-       than two billion lines (David Fetter)
-      
-     
-
-     
-      
-       Report both the returned data and the command status tag
-       for INSERT/UPDATE/DELETE
-       RETURNING (Tom)
-      
-     
-
-    
-
-   
-
-   
-    <link linkend="APP-PGDUMP"><application>pg_dump</></link> Changes
-    
-
-     
-      
-       Allow complex selection of objects to be included or excluded
-       by pg_dump (Greg Sabino Mullane)
-      
-
-      
-       pg_dump now supports multiple -n
-       (schema) and -t (table) options, and adds
-       -N and -T options to exclude objects.
-       Also, the arguments of these switches can now be wild-card expressions
-       rather than single object names, for example
-       -t 'foo*', and a schema can be part of
-       a -t or -T switch, for example
-       -t schema1.table1.
-      
-     
-
-     
-      
-       Add pg_restore
-       --no-data-for-failed-tables option to suppress
-       loading data if table creation failed (i.e., the table already
-       exists) (Martin Pitt)
-      
-     
-
-     
-      
-       Add pg_restore
-       option to run the entire session in a single transaction
-       (Simon)
-      
-
-      
-       Use option -1 or --single-transaction.
-      
-     
-
-    
-
-   
-
-   
-    <link linkend="libpq"><application>libpq</></link> Changes
-    
-
-     
-      
-       Add 
-       linkend="libpq-misc">PQencryptPassword()
-       to encrypt passwords (Tom)
-      
-
-      
-       This allows passwords to be sent pre-encrypted for commands
-       like ALTER ROLE ...
-       PASSWORD.
-      
-     
-
-     
-      
-       Add function 
-       linkend="libpq-threading">PQisthreadsafe()
-       (Bruce)
-      
-
-      
-       This allows applications to query the thread-safety status
-       of the library.
-      
-     
-
-     
-      
-       Add 
-       linkend="libpq-exec-main">PQdescribePrepared(),
-       
-       linkend="libpq-exec-main">PQdescribePortal(),
-       and related functions to return information about previously
-       prepared statements and open cursors (Volkan YAZICI)
-      
-     
-
-     
-      
-       Allow LDAP lookups
-       from 
-       linkend="libpq-pgservice">pg_service.conf
-       (Laurenz Albe)
-      
-     
-
-     
-      
-       Allow a hostname in 
-       linkend="libpq-pgpass">~/.pgpass
-       to match the default socket directory (Bruce)
-      
-
-      
-       A blank hostname continues to match any Unix-socket connection,
-       but this addition allows entries that are specific to one of
-       several postmasters on the machine.
-      
-     
-
-    
-
-   
-
-   
-    <link linkend="ecpg"><application>ecpg</></link> Changes
-    
-
-     
-      
-       Allow SHOW to
-       put its result into a variable (Joachim Wieland)
-      
-     
-
-     
-      
-       Add COPY TO STDOUT
-       (Joachim Wieland)
-      
-     
-
-     
-      
-       Add regression tests (Joachim Wieland, Michael)
-      
-     
-
-     
-      
-       Major source code cleanups (Joachim Wieland, Michael)
-      
-     
-
-    
-
-   
-
-   
-    <application>Windows</> Port
-    
-
-     
-      
-       Allow MSVC to compile the PostgreSQL
-       server (Magnus, Hiroshi Saito)
-      
-     
-
-     
-      
-       Add MSVC support for utility commands and 
-       linkend="APP-PGDUMP">pg_dump (Hiroshi
-       Saito)
-      
-     
-
-     
-      
-       Add support for Windows code pages 1253,
-       1254, 1255, and 1257
-       (Kris Jurka)
-      
-     
-
-     
-      
-       Drop privileges on startup, so that the server can be started from
-       an administrative account (Magnus)
-      
-     
-
-     
-      
-       Stability fixes (Qingqing Zhou, Magnus)
-      
-     
-
-     
-      
-       Add native semaphore implementation (Qingqing Zhou)
-      
-
-      
-       The previous code mimicked SysV semaphores.
-      
-     
-
-    
-
-   
-
-   
-    Source Code Changes
-    
-
-     
-      
-       Add GIN (Generalized
-       Inverted iNdex) index access method (Teodor, Oleg)
-      
-     
-
-     
-      
-       Remove R-tree indexing (Tom)
-      
-
-      
-       Rtree has been re-implemented using 
-       linkend="GiST">GiST. Among other
-       differences, this means that rtree indexes now have support
-       for crash recovery via write-ahead logging (WAL).
-      
-     
-
-     
-      
-       Reduce libraries needlessly linked into the backend (Martijn
-       van Oosterhout, Tom)
-      
-     
-
-     
-      
-       Add a configure flag to allow libedit to be preferred over
-       GNU readline (Bruce)
-      
-
-      
-       Use configure 
-       linkend="configure">--with-libedit-preferred.
-      
-     
-
-     
-      
-       Allow installation into directories containing spaces
-       (Peter)
-      
-     
-
-     
-      
-       Improve ability to relocate installation directories (Tom)
-      
-     
-
-     
-      
-       Add support for Solaris x86_64 using the
-       Solaris compiler (Pierre Girard, Theo
-       Schlossnagle, Bruce)
-      
-     
-
-     
-      
-       Add DTrace support (Robert Lor)
-      
-     
-
-     
-      
-       Add PG_VERSION_NUM for use by third-party
-       applications wanting to test the backend version in C using >
-       and < comparisons (Bruce)
-      
-     
-
-     
-      
-       Add XLOG_BLCKSZ as independent from BLCKSZ
-       (Mark Wong)
-      
-     
-
-     
-      
-       Add LWLOCK_STATS define to report locking
-       activity (Tom)
-      
-     
-
-     
-      
-       Emit warnings for unknown configure options
-       (Martijn van Oosterhout)
-      
-     
-
-     
-      
-       Add server support for plugin libraries
-       that can be used for add-on tasks such as debugging and performance
-       measurement (Korry Douglas)
-      
-
-      
-       This consists of two features: a table of rendezvous
-       variables that allows separately-loaded shared libraries to
-       communicate, and a new configuration parameter 
-       linkend="guc-local-preload-libraries">local_preload_libraries
-       that allows libraries to be loaded into specific sessions without
-       explicit cooperation from the client application.  This allows
-       external add-ons to implement features such as a PL/PgSQL debugger.
-      
-     
-
-     
-      
-       Rename existing configuration parameter
-       preload_libraries to 
-       linkend="guc-shared-preload-libraries">shared_preload_libraries
-       (Tom)
-      
-
-      
-       This was done for clarity in comparison to
-       local_preload_libraries.
-      
-     
-
-     
-      
-       Add new configuration parameter 
-       linkend="guc-server-version-num">server_version_num
-       (Greg Sabino Mullane)
-      
-
-      
-       This is like server_version, but is an
-       integer, e.g.  80200. This allows applications to
-       make version checks more easily.
-      
-     
-
-     
-      
-       Add a configuration parameter 
-       linkend="guc-seq-page-cost">seq_page_cost
-       (Tom)
-      
-     
-
-     
-      
-       Re-implement the regression test script as a C program
-       (Magnus, Tom)
-      
-     
-
-     
-      
-       Allow loadable modules to allocate shared memory and
-       lightweight locks (Marc Munro)
-      
-     
-
-     
-      
-       Add automatic initialization and finalization of dynamically
-       loaded libraries (Ralf Engelschall, Tom)
-      
-
-      
-       New functions
-       _PG_init() and _PG_fini() are
-       called if the library defines such symbols.  Hence we no
-       longer need to specify an initialization function in
-       shared_preload_libraries; we can assume that
-       the library used the _PG_init() convention
-       instead.
-      
-     
-
-     
-      
-       Add 
-       linkend="xfunc-c-dynload">PG_MODULE_MAGIC
-       header block to all shared object files (Martijn van
-       Oosterhout)
-      
-
-      
-       The magic block prevents version mismatches between loadable object
-       files and servers.
-      
-     
-
-     
-      
-        Add shared library support for AIX (Laurenz Albe)
-      
-     
-
-     
-      
-       New XML
-       documentation section (Bruce)
-      
-     
-
-    
-
-   
-
-   
-    Contrib Changes
-    
-
-     
-      
-       Major tsearch2 improvements (Oleg, Teodor)
-      
-
-      
-
-       
-        
-         multibyte encoding support, including UTF8
-        
-       
-       
-        
-         query rewriting support
-        
-       
-       
-        
-         improved ranking functions
-        
-       
-       
-        
-         thesaurus dictionary support
-        
-       
-       
-        
-         Ispell dictionaries now recognize MySpell
-         format, used by OpenOffice
-        
-       
-       
-        
-         GIN support
-        
-       
-
-      
-
-     
-
-     
-      
-       Add adminpack module containing Pgadmin administration
-       functions (Dave)
-      
-
-      
-       These functions provide additional file system access
-       routines not present in the default PostgreSQL
-       server.
-      
-     
-
-     
-      
-       Add sslinfo module (Victor Wagner)
-      
-
-      
-       Reports information about the current connection's SSL
-       certificate.
-      
-     
-
-     
-      
-       Add pgrowlocks module (Tatsuo)
-      
-
-      
-       This shows row locking information for a specified table.
-      
-     
-
-     
-      
-       Add hstore module (Oleg, Teodor)
-      
-     
-
-     
-      
-       Add isn module, replacing isbn_issn (Jeremy Kronuz)
-      
-
-      
-       This new implementation supports EAN13, UPC,
-       ISBN (books), ISMN (music), and
-       ISSN (serials).
-      
-     
-
-     
-      
-       Add index information functions to pgstattuple (ITAGAKI Takahiro,
-       Satoshi Nagayasu)
-      
-     
-
-     
-      
-       Add pg_freespacemap module to display free space map information
-       (Mark Kirkwood)
-      
-     
-
-     
-      
-       pgcrypto now has all planned functionality (Marko Kreen)
-      
-      
-       
-        
-         Include iMath library in pgcrypto to have the public-key encryption
-         functions always available.
-        
-       
-       
-        
-         Add SHA224 algorithm that was missing in OpenBSD code.
-        
-       
-       
-        
-         Activate builtin code for SHA224/256/384/512 hashes on older
-         OpenSSL to have those algorithms always available.
-        
-       
-       
-        
-         New function gen_random_bytes() that returns cryptographically strong
-         randomness.  Useful for generating encryption keys.
-        
-       
-       
-        
-         Remove digest_exists(), hmac_exists() and cipher_exists() functions.
-        
-       
-      
-     
-
-     
-      
-       Improvements to cube module (Joshua Reich)
-      
-
-      
-       New functions are cube(float[]),
-       cube(float[], float[]), and
-       cube_subset(cube, int4[]).
-      
-     
-
-     
-      
-       Add async query capability to dblink (Kai Londenberg,
-       Joe Conway)
-      
-     
-
-     
-      
-       New operators for array-subset comparisons (@>,
-       <@, &&) (Tom)
-      
-
-      
-       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.)
-      
-     
-
-     
-      
-       Add uninstall scripts for all contrib packages that have install
-       scripts (David, Josh Drake)
-      
-     
-
-    
-
-   
-
-  
-
-  Release 8.1.17
-
-  
-  Release date
-  2009-03-16
-  
-
-  
-   This release contains a variety of fixes from 8.1.16.
-   For information about new features in the 8.1 major release, see
-   .
-  
-
-  
-   Migration to Version 8.1.17
-
-   
-    A dump/restore is not required for those running 8.1.X.
-    However, if you are upgrading from a version earlier than 8.1.15,
-    see the release notes for 8.1.15.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Prevent error recursion crashes when encoding conversion fails (Tom)
-     
-
-     
-      This change extends fixes made in the last two minor releases for
-      related failure scenarios.  The previous fixes were narrowly tailored
-      for the original problem reports, but we have now recognized that
-      any error thrown by an encoding conversion function could
-      potentially lead to infinite recursion while trying to report the
-      error.  The solution therefore is to disable translation and encoding
-      conversion and report the plain-ASCII form of any error message,
-      if we find we have gotten into a recursive error reporting situation.
-      (CVE-2009-0922)
-     
-    
-
-    
-     
-      Disallow CREATE CONVERSION with the wrong encodings
-      for the specified conversion function (Heikki)
-     
-
-     
-      This prevents one possible scenario for encoding conversion failure.
-      The previous change is a backstop to guard against other kinds of
-      failures in the same area.
-     
-    
-
-    
-     
-      Fix core dump when to_char() is given format codes that
-      are inappropriate for the type of the data argument (Tom)
-     
-    
-
-    
-     
-      Fix decompilation of CASE WHEN with an implicit coercion
-      (Tom)
-     
-
-     
-      This mistake could lead to Assert failures in an Assert-enabled build,
-      or an unexpected CASE WHEN clause error message in other
-      cases, when trying to examine or dump a view.
-     
-    
-
-    
-     
-      Fix possible misassignment of the owner of a TOAST table's rowtype (Tom)
-     
-
-     
-      If CLUSTER or a rewriting variant of ALTER TABLE
-      were executed by someone other than the table owner, the
-      pg_type entry for the table's TOAST table would end up
-      marked as owned by that someone.  This caused no immediate problems,
-      since the permissions on the TOAST rowtype aren't examined by any
-      ordinary database operation.  However, it could lead to unexpected
-      failures if one later tried to drop the role that issued the command
-      (in 8.1 or 8.2), or owner of data type appears to be invalid
-      warnings from pg_dump after having done so (in 8.3).
-     
-    
-
-    
-     
-      Clean up PL/pgSQL error status variables fully at block exit
-      (Ashesh Vashi and Dave Page)
-     
-
-     
-      This is not a problem for PL/pgSQL itself, but the omission could cause
-      the PL/pgSQL Debugger to crash while examining the state of a function.
-     
-    
-
-    
-     
-      Add MUST (Mauritius Island Summer Time) to the default list
-      of known timezone abbreviations (Xavier Bugaud)
-     
-    
-
-   
-
-  
-
-  Release 8.1.16
-
-  
-  Release date
-  2009-02-02
-  
-
-  
-   This release contains a variety of fixes from 8.1.15.
-   For information about new features in the 8.1 major release, see
-   .
-  
-
-  
-   Migration to Version 8.1.16
-
-   
-    A dump/restore is not required for those running 8.1.X.
-    However, if you are upgrading from a version earlier than 8.1.15,
-    see the release notes for 8.1.15.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Fix crash in autovacuum (Alvaro)
-     
-
-     
-      The crash occurs only after vacuuming a whole database for
-      anti-transaction-wraparound purposes, which means that it occurs
-      infrequently and is hard to track down.
-     
-    
-
-    
-     
-      Improve handling of URLs in headline() function (Teodor)
-     
-    
-
-    
-     
-      Improve handling of overlength headlines in headline()
-      function (Teodor)
-     
-    
-
-    
-     
-      Prevent possible Assert failure or misconversion if an encoding
-      conversion is created with the wrong conversion function for the
-      specified pair of encodings (Tom, Heikki)
-     
-    
-
-    
-     
-      Avoid unnecessary locking of small tables in VACUUM
-      (Heikki)
-     
-    
-
-    
-     
-      Ensure that the contents of a holdable cursor don't depend on the
-      contents of TOAST tables (Tom)
-     
-
-     
-      Previously, large field values in a cursor result might be represented
-      as TOAST pointers, which would fail if the referenced table got dropped
-      before the cursor is read, or if the large value is deleted and then
-      vacuumed away.  This cannot happen with an ordinary cursor,
-      but it could with a cursor that is held past its creating transaction.
-     
-    
-
-    
-     
-      Fix uninitialized variables in contrib/tsearch2's
-      get_covers() function (Teodor)
-     
-    
-
-    
-     
-      Fix configure script to properly report failure when
-      unable to obtain linkage information for PL/Perl (Andrew)
-     
-    
-
-    
-     
-      Make all documentation reference pgsql-bugs and/or
-      pgsql-hackers as appropriate, instead of the
-      now-decommissioned pgsql-ports and pgsql-patches
-      mailing lists (Tom)
-     
-    
-
-    
-     
-      Update time zone data files to tzdata release 2009a (for
-      Kathmandu and historical DST corrections in Switzerland, Cuba)
-     
-    
-
-   
-
-  
-
-  Release 8.1.15
-
-  
-  Release date
-  2008-11-03
-  
-
-  
-   This release contains a variety of fixes from 8.1.14.
-   For information about new features in the 8.1 major release, see
-   .
-  
-
-  
-   Migration to Version 8.1.15
-
-   
-    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.  Also, if you were running a previous
-    8.1.X release, it is recommended to REINDEX all GiST
-    indexes after the upgrade.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Fix GiST index corruption due to marking the wrong index entry
-      dead after a deletion (Teodor)
-     
-
-     
-      This would result in index searches failing to find rows they
-      should have found.  Corrupted indexes can be fixed with
-      REINDEX.
-     
-    
-
-    
-     
-      Fix backend crash when the client encoding cannot represent a localized
-      error message (Tom)
-     
-
-     
-      We have addressed similar issues before, but it would still fail if
-      the character has no equivalent message itself couldn't
-      be converted.  The fix is to disable localization and send the plain
-      ASCII error message when we detect such a situation.
-     
-    
-
-    
-     
-      Fix possible crash when deeply nested functions are invoked from
-      a trigger (Tom)
-     
-    
-
-    
-     
-      Fix mis-expansion of rule queries when a sub-SELECT appears
-      in a function call in FROM,  a multi-row VALUES
-      list, or a RETURNING list (Tom)
-     
-
-     
-      The usual symptom of this problem is an unrecognized node type
-      error.
-     
-    
-
-    
-     
-      Ensure an error is reported when a newly-defined PL/pgSQL trigger
-      function is invoked as a normal function (Tom)
-     
-    
-
-    
-     
-      Prevent possible collision of relfilenode numbers
-      when moving a table to another tablespace with ALTER SET
-      TABLESPACE (Heikki)
-     
-
-     
-      The command tried to re-use the existing filename, instead of
-      picking one that is known unused in the destination directory.
-     
-    
-
-    
-     
-      Fix incorrect tsearch2 headline generation when single query
-      item matches first word of text (Sushant Sinha)
-     
-    
-
-    
-     
-      Fix improper display of fractional seconds in interval values when
-      using a non-ISO datestyle in an 
-      build (Ron Mayer)
-     
-    
-
-    
-     
-      Ensure SPI_getvalue and SPI_getbinval
-      behave correctly when the passed tuple and tuple descriptor have
-      different numbers of columns (Tom)
-     
-
-     
-      This situation is normal when a table has had columns added or removed,
-      but these two functions didn't handle it properly.
-      The only likely consequence is an incorrect error indication.
-     
-    
-
-    
-     
-      Fix ecpg's parsing of CREATE ROLE (Michael)
-     
-    
-
-    
-     
-      Fix recent breakage of pg_ctl restart (Tom)
-     
-    
-
-    
-     
-      Update time zone data files to tzdata release 2008i (for
-      DST law changes in Argentina, Brazil, Mauritius, Syria)
-     
-    
-
-   
-
-  
-
-  Release 8.1.14
-
-  
-  Release date
-  2008-09-22
-  
-
-  
-   This release contains a variety of fixes from 8.1.13.
-   For information about new features in the 8.1 major release, see
-   .
-  
-
-  
-   Migration to Version 8.1.14
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Widen local lock counters from 32 to 64 bits (Tom)
-     
-
-     
-      This responds to reports that the counters could overflow in
-      sufficiently long transactions, leading to unexpected lock is
-      already held errors.
-     
-    
-
-    
-     
-      Fix possible duplicate output of tuples during a GiST index scan (Teodor)
-     
-    
-
-    
-     
-      Add checks in executor startup to ensure that the tuples produced by an
-      INSERT or UPDATE will match the target table's
-      current rowtype (Tom)
-     
-
-     
-      ALTER COLUMN TYPE, followed by re-use of a previously
-      cached plan, could produce this type of situation.  The check protects
-      against data corruption and/or crashes that could ensue.
-     
-    
-
-    
-     
-      Fix AT TIME ZONE to first try to interpret its timezone
-      argument as a timezone abbreviation, and only try it as a full timezone
-      name if that fails, rather than the other way around as formerly (Tom)
-     
-
-     
-      The timestamp input functions have always resolved ambiguous zone names
-      in this order.  Making AT TIME ZONE do so as well improves
-      consistency, and fixes a compatibility bug introduced in 8.1:
-      in ambiguous cases we now behave the same as 8.0 and before did,
-      since in the older versions AT TIME ZONE accepted
-      only abbreviations.
-     
-    
-
-    
-     
-      Fix datetime input functions to correctly detect integer overflow when
-      running on a 64-bit platform (Tom)
-     
-    
-
-    
-     
-      Improve performance of writing very long log messages to syslog (Tom)
-     
-    
-
-    
-     
-      Fix bug in backwards scanning of a cursor on a SELECT DISTINCT
-      ON query (Tom)
-     
-    
-
-    
-     
-      Fix planner bug with nested sub-select expressions (Tom)
-     
-
-     
-      If the outer sub-select has no direct dependency on the parent query,
-      but the inner one does, the outer value might not get recalculated
-      for new parent query rows.
-     
-    
-
-    
-     
-      Fix planner to estimate that GROUP BY expressions yielding
-      boolean results always result in two groups, regardless of the
-      expressions' contents (Tom)
-     
-
-     
-      This is very substantially more accurate than the regular GROUP
-      BY estimate for certain boolean tests like col
-      IS NULL.
-     
-    
-
-    
-     
-      Fix PL/PgSQL to not fail when a FOR loop's target variable
-      is a record containing composite-type fields (Tom)
-     
-    
-
-    
-     
-      Fix PL/Tcl to behave correctly with Tcl 8.5, and to be more careful
-      about the encoding of data sent to or from Tcl (Tom)
-     
-    
-
-    
-     
-      Fix PL/Python to work with Python 2.5
-     
-
-     
-      This is a back-port of fixes made during the 8.2 development cycle.
-     
-    
-
-    
-     
-      Improve pg_dump and pg_restore's
-      error reporting after failure to send a SQL command (Tom)
-     
-    
-
-    
-     
-      Fix pg_ctl to properly preserve postmaster
-      command-line arguments across a restart (Bruce)
-     
-    
-
-    
-     
-      Update time zone data files to tzdata release 2008f (for
-      DST law changes in Argentina, Bahamas, Brazil, Mauritius, Morocco,
-      Pakistan, Palestine, and Paraguay)
-     
-    
-
-   
-
-  
-
-  Release 8.1.13
-
-  
-  Release date
-  2008-06-12
-  
-
-  
-   This release contains one serious and one minor bug fix over 8.1.12.
-   For information about new features in the 8.1 major release, see
-   .
-  
-
-  
-   Migration to Version 8.1.13
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Make pg_get_ruledef() parenthesize negative constants (Tom)
-     
-
-     
-      Before this fix, a negative constant in a view or rule might be dumped
-      as, say, -42::integer, which is subtly incorrect: it should
-      be (-42)::integer due to operator precedence rules.
-      Usually this would make little difference, but it could interact with
-      another recent patch to cause
-      PostgreSQL to reject what had been a valid
-      SELECT DISTINCT view query.  Since this could result in
-      pg_dump output failing to reload, it is being treated
-      as a high-priority fix.  The only released versions in which dump
-      output is actually incorrect are 8.3.1 and 8.2.7.
-     
-    
-
-    
-     
-      Make ALTER AGGREGATE ... OWNER TO update
-      pg_shdepend (Tom)
-     
-
-     
-      This oversight could lead to problems if the aggregate was later
-      involved in a DROP OWNED or REASSIGN OWNED
-      operation.
-     
-    
-
-   
-
-  
-
-  Release 8.1.12
-
-  
-  Release date
-  never released
-  
-
-  
-   This release contains a variety of fixes from 8.1.11.
-   For information about new features in the 8.1 major release, see
-   .
-  
-
-  
-   Migration to Version 8.1.12
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Fix 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)
-     
-
-     
-      Previous versions neglected to check this requirement at all.
-     
-    
-
-    
-     
-      Fix possible CREATE TABLE failure when inheriting the
-      same constraint from multiple parent relations that
-      inherited that constraint from a common ancestor (Tom)
-     
-    
-
-    
-     
-      Fix conversions between ISO-8859-5 and other encodings to handle
-      Cyrillic Yo characters (e and E with
-      two dots) (Sergey Burladyan)
-     
-    
-
-    
-     
-      Fix a few datatype input functions
-      that were allowing unused bytes in their results to contain
-      uninitialized, unpredictable values (Tom)
-     
-
-     
-      This could lead to failures in which two apparently identical literal
-      values were not seen as equal, resulting in the parser complaining
-      about unmatched ORDER BY and DISTINCT
-      expressions.
-     
-    
-
-    
-     
-      Fix a corner case in regular-expression substring matching
-      (substring(string from
-      pattern)) (Tom)
-     
-
-     
-      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
-      substring('foo' from 'foo(bar)?').
-      This should return NULL, since (bar) isn't matched, but
-      it was mistakenly returning the whole-pattern match instead (ie,
-      foo).
-     
-    
-
-    
-     
-      Update time zone data files to tzdata release 2008c (for
-      DST law changes in Morocco, Iraq, Choibalsan, Pakistan, Syria, Cuba,
-      Argentina/San_Luis, and Chile)
-     
-    
-
-    
-     
-      Fix incorrect result from ecpg's
-      PGTYPEStimestamp_sub() function (Michael)
-     
-    
-
-    
-     
-      Fix core dump in contrib/xml2's
-      xpath_table() function when the input query returns a
-      NULL value (Tom)
-     
-    
-
-    
-     
-      Fix contrib/xml2's makefile to not override
-      CFLAGS (Tom)
-     
-    
-
-    
-     
-      Fix DatumGetBool macro to not fail with gcc
-      4.3 (Tom)
-     
-
-     
-      This problem affects 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.
-     
-    
-
-    
-     
-      Fix longstanding LISTEN/NOTIFY
-      race condition (Tom)
-     
-
-     
-      In rare cases a session that had just executed a
-      LISTEN might not get a notification, even though
-      one would be expected because the concurrent transaction executing
-      NOTIFY was observed to commit later.
-     
-
-     
-      A side effect of the fix is that a transaction that has executed
-      a not-yet-committed LISTEN command will not see any
-      row in pg_listener for the 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.
-     
-    
-
-    
-     
-      Disallow LISTEN and UNLISTEN within a
-      prepared transaction (Tom)
-     
-
-     
-      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 UNLISTEN remained uncommitted.
-     
-    
-
-    
-     
-      Fix rare crash when an error occurs during a query using a hash index
-      (Heikki)
-     
-    
-
-    
-     
-      Fix input of datetime values for February 29 in years BC (Tom)
-     
-
-     
-      The former coding was mistaken about which years were leap years.
-     
-    
-
-    
-     
-      Fix unrecognized node type error in some variants of
-      ALTER OWNER (Tom)
-     
-    
-
-    
-     
-      Fix pg_ctl to correctly extract the postmaster's port
-      number from command-line options (Itagaki Takahiro, Tom)
-     
-
-     
-      Previously, pg_ctl start -w could try to contact the
-      postmaster on the wrong port, leading to bogus reports of startup
-      failure.
-     
-    
-
-    
-     
-      Use 
-      in recent gcc versions (Tom)
-     
-
-     
-      This is known to be necessary when building PostgreSQL
-      with gcc 4.3 or later.
-     
-    
-
-    
-     
-      Fix display of constant expressions in ORDER BY
-      and GROUP BY (Tom)
-     
-
-     
-      An explictly casted constant would be shown incorrectly.  This could
-      for example lead to corruption of a view definition during
-      dump and reload.
-     
-    
-
-    
-     
-      Fix libpq to handle NOTICE messages correctly
-      during COPY OUT (Tom)
-     
-
-     
-      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.
-     
-    
-
-   
-
-  
-
-  Release 8.1.11
-
-  
-  Release date
-  2008-01-07
-  
-
-  
-   This release contains a variety of fixes from 8.1.10,
-   including fixes for significant security issues.
-   For information about new features in the 8.1 major release, see
-   .
-  
-
-  
-   This is the last 8.1.X release for which the PostgreSQL
-   community will produce binary packages for Windows.
-   Windows users are encouraged to move to 8.2.X or later,
-   since there are Windows-specific fixes in 8.2.X that
-   are impractical to back-port.  8.1.X will continue to
-   be supported on other platforms.
-  
-
-  
-   Migration to Version 8.1.11
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Prevent functions in indexes from executing with the privileges of
-      the user running VACUUM, ANALYZE, etc (Tom)
-     
-
-     
-      Functions used in index expressions and partial-index
-      predicates are evaluated whenever a new table entry is made.  It has
-      long been understood that this poses a risk of trojan-horse code
-      execution if one modifies a table owned by an untrustworthy user.
-      (Note that triggers, defaults, check constraints, etc. pose the
-      same type of risk.)  But functions in indexes pose extra danger
-      because they will be executed by routine maintenance operations
-      such as VACUUM FULL, which are commonly performed
-      automatically under a superuser account.  For example, a nefarious user
-      can execute code with superuser privileges by setting up a
-      trojan-horse index definition and waiting for the next routine vacuum.
-      The fix arranges for standard maintenance operations
-      (including VACUUM, ANALYZE, REINDEX,
-      and CLUSTER) to execute as the table owner rather than
-      the calling user, using the same privilege-switching mechanism already
-      used for SECURITY DEFINER functions.  To prevent bypassing
-      this security measure, execution of SET SESSION
-      AUTHORIZATION and SET ROLE is now forbidden within a
-      SECURITY DEFINER context.  (CVE-2007-6600)
-     
-    
-
-    
-     
-      Repair assorted bugs in the regular-expression package (Tom, Will Drewry)
-     
-
-     
-      Suitably crafted regular-expression patterns could cause crashes,
-      infinite or near-infinite looping, and/or massive memory consumption,
-      all of which pose denial-of-service hazards for applications that
-      accept regex search patterns from untrustworthy sources.
-      (CVE-2007-4769, CVE-2007-4772, CVE-2007-6067)
-     
-    
-
-    
-     
-      Require non-superusers who use /contrib/dblink to use only
-      password authentication, as a security measure (Joe)
-     
-
-     
-      The fix that appeared for this in 8.1.10 was incomplete, as it plugged
-      the hole for only some dblink functions.  (CVE-2007-6601,
-      CVE-2007-3278)
-     
-    
-
-    
-     
-      Update time zone data files to tzdata release 2007k
-      (in particular, recent Argentina changes) (Tom)
-     
-    
-
-    
-     
-      Improve planner's handling of LIKE/regex estimation in non-C locales
-      (Tom)
-     
-    
-
-    
-     
-      Fix planner failure in some cases of WHERE false AND var IN
-      (SELECT ...) (Tom)
-     
-    
-
-    
-     
-      Preserve the tablespace of indexes that are
-      rebuilt by ALTER TABLE ... ALTER COLUMN TYPE (Tom)
-     
-    
-
-    
-     
-      Make archive recovery always start a new WAL timeline, rather than only
-      when a recovery stop time was used (Simon)
-     
-
-     
-      This avoids a corner-case risk of trying to overwrite an existing
-      archived copy of the last WAL segment, and seems simpler and cleaner
-      than the original definition.
-     
-    
-
-    
-     
-      Make VACUUM not use all of maintenance_work_mem
-      when the table is too small for it to be useful (Alvaro)
-     
-    
-
-    
-     
-      Fix potential crash in translate() when using a multibyte
-      database encoding (Tom)
-     
-    
-
-    
-     
-      Fix overflow in extract(epoch from interval) for intervals
-      exceeding 68 years (Tom)
-     
-    
-
-    
-     
-      Fix PL/Perl to not fail when a UTF-8 regular expression is used
-      in a trusted function (Andrew)
-     
-    
-
-    
-     
-      Fix PL/Perl to cope when platform's Perl defines type bool
-      as int rather than char (Tom)
-     
-
-     
-      While this could theoretically happen anywhere, no standard build of
-      Perl did things this way ... until Mac OS X 10.5.
-     
-    
-
-    
-     
-      Fix PL/Python to not crash on long exception messages (Alvaro)
-     
-    
-
-    
-     
-      Fix pg_dump to correctly handle inheritance child tables
-      that have default expressions different from their parent's (Tom)
-     
-    
-
-    
-     
-      Fix libpq crash when PGPASSFILE refers
-      to a file that is not a plain file (Martin Pitt)
-     
-    
-
-    
-     
-      ecpg parser fixes (Michael)
-     
-    
-
-    
-     
-      Make contrib/pgcrypto defend against
-      OpenSSL libraries that fail on keys longer than 128
-      bits; which is the case at least on some Solaris versions (Marko Kreen)
-     
-    
-
-    
-     
-      Make contrib/tablefunc's crosstab() handle
-      NULL rowid as a category in its own right, rather than crashing (Joe)
-     
-    
-
-    
-     
-      Fix tsvector and tsquery output routines to
-      escape backslashes correctly (Teodor, Bruce)
-     
-    
-
-    
-     
-      Fix crash of to_tsvector() on huge input strings (Teodor)
-     
-    
-
-    
-     
-      Require a specific version of Autoconf to be used
-      when re-generating the configure script (Peter)
-     
-
-     
-      This affects developers and packagers only.  The change was made
-      to prevent accidental use of untested combinations of
-      Autoconf and PostgreSQL versions.
-      You can remove the version check if you really want to use a
-      different Autoconf version, but it's
-      your responsibility whether the result works or not.
-     
-    
-
-   
-
-  
-
-  Release 8.1.10
-
-  
-  Release date
-  2007-09-17
-  
-
-  
-   This release contains a variety of fixes from 8.1.9.
-   For information about new features in the 8.1 major release, see
-   .
-  
-
-  
-   Migration to Version 8.1.10
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Prevent index corruption when a transaction inserts rows and
-      then aborts close to the end of a concurrent VACUUM
-      on the same table (Tom)
-     
-    
-
-    
-     
-      Make CREATE DOMAIN ... DEFAULT NULL work properly (Tom)
-     
-    
-
-    
-     
-      Allow the interval data type to accept input consisting only of
-      milliseconds or microseconds (Neil)
-     
-    
-
-    
-     
-      Speed up rtree index insertion (Teodor)
-     
-    
-
-    
-     
-      Fix excessive logging of SSL error messages (Tom)
-     
-    
-
-    
-     
-      Fix logging so that log messages are never interleaved when using
-      the syslogger process (Andrew)
-     
-    
-
-    
-     
-      Fix crash when log_min_error_statement logging runs out
-      of memory (Tom)
-     
-    
-
-    
-     
-      Fix incorrect handling of some foreign-key corner cases (Tom)
-     
-    
-
-    
-     
-      Prevent REINDEX and CLUSTER from failing
-      due to attempting to process temporary tables of other sessions (Alvaro)
-     
-    
-
-    
-     
-      Update the time zone database rules, particularly New Zealand's upcoming changes (Tom)
-     
-    
-
-    
-     
-      Windows socket improvements (Magnus)
-     
-    
-
-    
-     
-      Suppress timezone name (%Z) in log timestamps on Windows
-      because of possible encoding mismatches (Tom)
-     
-    
-
-    
-     
-      Require non-superusers who use /contrib/dblink to use only
-      password authentication, as a security measure (Joe)
-     
-    
-
-   
-
-  
-
-  Release 8.1.9
-
-  
-  Release date
-  2007-04-23
-  
-
-  
-   This release contains a variety of fixes from 8.1.8,
-   including a security fix.
-   For information about new features in the 8.1 major release, see
-   .
-  
-
-  
-   Migration to Version 8.1.9
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-    
-     Support explicit placement of the temporary-table schema within
-     search_path, and disable searching it for functions
-     and operators (Tom)
-    
-    
-     This is needed to allow a security-definer function to set a
-     truly secure value of search_path.  Without it,
-     an unprivileged SQL user can use temporary objects to execute code
-     with the privileges of the security-definer function (CVE-2007-2138).
-     See CREATE FUNCTION for more information.
-    
-    
-
-    
-    
-     /contrib/tsearch2 crash fixes (Teodor)
-    
-    
-
-    
-    
-     Require COMMIT PREPARED to be executed in the same
-     database as the transaction was prepared in (Heikki)
-    
-    
-
-    
-    
-     Fix potential-data-corruption bug in how VACUUM FULL handles
-     UPDATE chains (Tom, Pavan Deolasee)
-    
-    
-
-    
-    
-     Planner fixes, including improving outer join and bitmap scan
-     selection logic (Tom)
-    
-    
-
-    
-    
-     Fix PANIC during enlargement of a hash index (bug introduced in 8.1.6)
-     (Tom)
-    
-    
-
-    
-    
-     Fix POSIX-style timezone specs to follow new USA DST rules (Tom)
-    
-    
-
-   
-
-  
-
-  Release 8.1.8
-
-  
-  Release date
-  2007-02-07
-  
-
-  
-   This release contains one fix from 8.1.7.
-   For information about new features in the 8.1 major release, see
-   .
-  
-
-  
-   Migration to Version 8.1.8
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-    
-     Remove overly-restrictive check for type length in constraints and
-     functional indexes(Tom)
-    
-    
-
-   
-
-  
-
-  Release 8.1.7
-
-  
-  Release date
-  2007-02-05
-  
-
-  
-   This release contains a variety of fixes from 8.1.6, including
-   a security fix.
-   For information about new features in the 8.1 major release, see
-   .
-  
-
-  
-   Migration to Version 8.1.7
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-    
-     Remove security vulnerabilities that allowed connected users
-     to read backend memory (Tom)
-    
-    
-     The vulnerabilities involve suppressing the normal check that a SQL
-     function returns the data type it's declared to, and changing the
-     data type of a table column (CVE-2007-0555, CVE-2007-0556).  These
-     errors 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.
-    
-    
-
-    
-    
-     Fix rare bug wherein btree index page splits could fail
-     due to choosing an infeasible split point (Heikki Linnakangas)
-    
-    
-
-    
-    
-     Improve VACUUM performance for databases with many tables (Tom)
-    
-    
-
-    
-    
-     Fix autovacuum to avoid leaving non-permanent transaction IDs in
-     non-connectable databases (Alvaro)
-    
-
-    
-     This bug affects the 8.1 branch only.
-    
-    
-
-    
-    
-     Fix for rare Assert() crash triggered by UNION (Tom)
-    
-    
-
-    
-    
-     Tighten security of multi-byte character processing for UTF8 sequences
-     over three bytes long (Tom)
-    
-    
-
-    
-    
-     Fix bogus permission denied failures occurring on Windows
-     due to attempts to fsync already-deleted files (Magnus, Tom)
-    
-    
-
-    
-    
-     Fix possible crashes when an already-in-use PL/pgSQL function is
-     updated (Tom)
-    
-    
-
-   
-
-  
-
-  Release 8.1.6
-
-  
-  Release date
-  2007-01-08
-  
-
-  
-   This release contains a variety of fixes from 8.1.5.
-   For information about new features in the 8.1 major release, see
-   .
-  
-
-  
-   Migration to Version 8.1.6
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Improve handling of getaddrinfo() on AIX (Tom)
-     
-
-     
-      This fixes a problem with starting the statistics collector,
-      among other things.
-     
-    
-
-    
-     
-      Fix pg_restore to handle a tar-format backup
-      that contains large objects (blobs) with comments (Tom)
-     
-    
-
-     
-      
-       Fix failed to re-find parent key errors in
-       VACUUM (Tom)
-      
-     
-
-     
-      
-       Clean out pg_internal.init cache files during server
-       restart (Simon)
-      
-
-      
-       This avoids a hazard that the cache files might contain stale
-       data after PITR recovery.
-      
-     
-
-     
-      
-       Fix race condition for truncation of a large relation across a
-       gigabyte boundary by VACUUM (Tom)
-      
-     
-
-     
-      
-       Fix bug causing needless deadlock errors on row-level locks (Tom)
-      
-     
-
-     
-      
-       Fix bugs affecting multi-gigabyte hash indexes (Tom)
-      
-     
-
-    
-     
-      Fix possible deadlock in Windows signal handling (Teodor)
-     
-    
-
-    
-     
-      Fix error when constructing an ARRAY[] made up of multiple
-      empty elements (Tom)
-     
-    
-
-    
-     
-      Fix ecpg memory leak during connection (Michael)
-     
-    
-
-    
-     
-      Fix for Darwin (OS X) compilation (Tom)
-     
-    
-
-    
-     
-      to_number() and to_char(numeric)
-      are now STABLE, not IMMUTABLE, for
-      new initdb installs (Tom)
-     
-
-     
-      This is because lc_numeric can potentially
-      change the output of these functions.
-     
-    
-
-    
-     
-      Improve index usage of regular expressions that use parentheses (Tom)
-     
-
-     
-      This improves psql \d performance also.
-     
-    
-
-    
-     
-      Update timezone database
-     
-
-     
-      This affects Australian and Canadian daylight-savings rules in
-      particular.
-     
-    
-
-   
-
-  
-
-  Release 8.1.5
-
-  
-  Release date
-  2006-10-16
-  
-
-  
-   This release contains a variety of fixes from 8.1.4.
-   For information about new features in the 8.1 major release, see
-   .
-  
-
-  
-   Migration to Version 8.1.5
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-
-Disallow aggregate functions in UPDATE
-commands, except within sub-SELECTs (Tom)
-The behavior of such an aggregate was unpredictable, and in 8.1.X
-could cause a crash, so it has been disabled.  The SQL standard does not allow
-this either.
-Fix core dump when an untyped literal is taken as
-ANYARRAY
-Fix core dump in duration logging for extended query protocol
-when a COMMIT or ROLLBACK is
-executed
-Fix mishandling of AFTER triggers when query contains a SQL
-function returning multiple rows (Tom)
-Fix ALTER TABLE ... TYPE to recheck
-NOT NULL for USING clause (Tom)
-Fix string_to_array() to handle overlapping
- matches for the separator string
-For example, string_to_array('123xx456xxx789', 'xx').
-
-Fix to_timestamp() for
-AM/PM formats (Bruce)
-Fix autovacuum's calculation that decides whether
ANALYZE is needed (Alvaro)
-Fix corner cases in pattern matching for
psql's \d commands
-Fix index-corrupting bugs in /contrib/ltree
- (Teodor)
-Numerous robustness fixes in ecpg (Joachim
-Wieland)
-Fix backslash escaping in /contrib/dbmirror
-Minor fixes in /contrib/dblink and /contrib/tsearch2
-
-Efficiency improvements in hash tables and bitmap index scans
-(Tom)
-Fix instability of statistics collection on Windows (Tom, Andrew)
-Fix statement_timeout to use the proper
-units on Win32 (Bruce)
-In previous Win32 8.1.X versions, the delay was off by a factor of
-100.
-Fixes for MSVC and Borland C++
-compilers (Hiroshi Saito)
-Fixes for AIX and
-Intel compilers (Tom)
-Fix rare bug in continuous archiving (Tom)
-
-
-  
-
-  Release 8.1.4
-
-  
-  Release date
-  2006-05-23
-  
-
-  
-   This release contains a variety of fixes from 8.1.3,
-   including patches for extremely serious security issues.
-   For information about new features in the 8.1 major release, see
-   .
-  
-
-  
-   Migration to Version 8.1.4
-
-   
-    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.
-   
-
-   
-    Full security against the SQL-injection attacks described in
-    CVE-2006-2313 and CVE-2006-2314 might require changes in application
-    code.  If you have applications that embed untrustworthy strings
-    into SQL commands, you should examine them as soon as possible to
-    ensure that they are using recommended escaping techniques.  In
-    most cases, applications should be using subroutines provided by
-    libraries or drivers (such as libpq's
-    PQescapeStringConn()) to perform string escaping,
-    rather than relying on ad hoc code to do it.
-   
-  
-
-  
-   Changes
-
-
-Change the server to reject invalidly-encoded multibyte
-characters in all cases (Tatsuo, Tom)
-While PostgreSQL has been moving in this direction for
-some time, the checks are now applied uniformly to all encodings and all
-textual input, and are now always errors not merely warnings.  This change
-defends against SQL-injection attacks of the type described in CVE-2006-2313.
-
-
-Reject unsafe uses of \' in string literals
-As a server-side defense against SQL-injection attacks of the type
-described in CVE-2006-2314, the server now only accepts '' and not
-\' as a representation of ASCII single quote in SQL string
-literals.  By default, \' is rejected only when
-client_encoding is set to a client-only encoding (SJIS, BIG5, GBK,
-GB18030, or UHC), which is the scenario in which SQL injection is possible.
-A new configuration parameter backslash_quote is available to
-adjust this behavior when needed.  Note that full security against
-CVE-2006-2314 might require client-side changes; the purpose of
-backslash_quote is in part to make it obvious that insecure
-clients are insecure.
-
-
-Modify libpq's string-escaping routines to be
-aware of encoding considerations and
-standard_conforming_strings
-This fixes libpq-using applications for the security
-issues described in CVE-2006-2313 and CVE-2006-2314, and also future-proofs
-them against the planned changeover to SQL-standard string literal syntax.
-Applications that use multiple PostgreSQL connections
-concurrently should migrate to PQescapeStringConn() and
-PQescapeByteaConn() to ensure that escaping is done correctly
-for the settings in use in each database connection.  Applications that
-do string escaping by hand should be modified to rely on library
-routines instead.
-
-
-Fix weak key selection in pgcrypto (Marko Kreen)
-Errors in fortuna PRNG reseeding logic could cause a predictable
-session key to be selected by pgp_sym_encrypt() in some cases.
-This only affects non-OpenSSL-using builds.
-
-
-Fix some incorrect encoding conversion functions
-win1251_to_iso, win866_to_iso,
-euc_tw_to_big5, euc_tw_to_mic,
-mic_to_euc_tw were all broken to varying
-extents.
-
-
-Clean up stray remaining uses of \' in strings
-(Bruce, Jan)
-
-Make autovacuum visible in pg_stat_activity
-(Alvaro)
-
-Disable full_page_writes (Tom)
-In certain cases, having full_page_writes off would cause
-crash recovery to fail.  A proper fix will appear in 8.2; for now it's just
-disabled.
-
-
-Various planner fixes, particularly for bitmap index scans and
-MIN/MAX optimization (Tom)
-
-Fix incorrect optimization in merge join (Tom)
-Outer joins could sometimes emit multiple copies of unmatched rows.
-
-
-Fix crash from using and modifying a plpgsql function in the
-same transaction
-
-Fix WAL replay for case where a B-Tree index has been
-truncated
-
-Fix SIMILAR TO for patterns involving
-| (Tom)
-
-Fix SELECT INTO and CREATE TABLE AS to
-create tables in the default tablespace, not the base directory (Kris
-Jurka)
-
-Fix server to use custom DH SSL parameters correctly (Michael
-Fuhr)
-
-Improve qsort performance (Dann Corbit)
-Currently this code is only used on Solaris.
-
-
-Fix for OS/X Bonjour on x86 systems (Ashley Clark)
-
-Fix various minor memory leaks
-
-Fix problem with password prompting on some Win32 systems
-(Robert Kinberg)
-
-Improve pg_dump's handling of default values
-for domains
-
-Fix pg_dumpall to handle identically-named
-users and groups reasonably (only possible when dumping from a pre-8.1 server)
-(Tom)
-The user and group will be merged into a single role with
-LOGIN permission.  Formerly the merged role wouldn't have
-LOGIN permission, making it unusable as a user.
-
-
-Fix pg_restore -n to work as
-documented (Tom)
-
-
-  
-
-  Release 8.1.3
-
-  
-  Release date
-  2006-02-14
-  
-
-  
-   This release contains a variety of fixes from 8.1.2,
-   including one very serious security issue.
-   For information about new features in the 8.1 major release, see
-   .
-  
-
-  
-   Migration to Version 8.1.3
-
-   
-    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.
-   
-  
-
-  
-   Changes
-
-
-
-Fix bug that allowed any logged-in user to SET
-ROLE to any other database user id (CVE-2006-0553)
-Due to inadequate validity checking, a user could exploit the special
-case that SET ROLE normally uses to restore the previous role
-setting after an error.  This allowed ordinary users to acquire superuser
-status, for example.
-The escalation-of-privilege risk exists only in 8.1.0-8.1.2.
-However, in all releases back to 7.3 there is a related bug in SET
-SESSION AUTHORIZATION that allows unprivileged users to crash the server,
-if it has been compiled with Asserts enabled (which is not the default).
-Thanks to Akio Ishida for reporting this problem.
-
-
-Fix bug with row visibility logic in self-inserted
-rows (Tom)
-Under rare circumstances a row inserted by the current command
-could be seen as already valid, when it should not be.  Repairs bug
-created in 8.0.4, 7.4.9, and 7.3.11 releases.
-
-
-Fix race condition that could lead to file already
-exists errors during pg_clog and pg_subtrans file creation
-(Tom)
-
-Fix cases that could lead to crashes if a cache-invalidation
-message arrives at just the wrong time (Tom)
-
-Properly check DOMAIN constraints for
-UNKNOWN parameters in prepared statements
-(Neil)
-
-Ensure ALTER COLUMN TYPE will process
-FOREIGN KEY, UNIQUE, and PRIMARY KEY
-constraints in the proper order (Nakano Yoshihisa)
-
-Fixes to allow restoring dumps that have cross-schema
-references to custom operators or operator classes (Tom)
-
-Allow pg_restore to continue properly after a
-COPY failure; formerly it tried to treat the remaining
-COPY data as SQL commands (Stephen Frost)
-
-Fix pg_ctl unregister crash
-when the  data directory is not specified (Magnus)
-
-Fix libpq PQprint HTML tags
-(Christoph Zwerschke)
-
-Fix ecpg crash on AMD64 and PPC
-(Neil)
-
-Allow SETOF and %TYPE to be used
-together in function result type declarations
-
-Recover properly if error occurs during argument passing
-in PL/python (Neil)
-
-Fix memory leak in plperl_return_next
-(Neil)
-
-Fix PL/perl's handling of locales on
-Win32 to match the backend (Andrew)
-
-Various optimizer fixes (Tom)
-
-Fix crash when log_min_messages is set to
-DEBUG3 or above in postgresql.conf on Win32
-(Bruce)
-
-Fix pgxs -L library path
-specification for Win32, Cygwin, OS X, AIX (Bruce)
-
-Check that SID is enabled while checking for Win32 admin
-privileges (Magnus)
-
-Properly reject out-of-range date inputs (Kris
-Jurka)
-
-Portability fix for testing presence of finite
-and isinf during configure (Tom)
-
-Improve speed of COPY IN via libpq, by
-avoiding a kernel call per data line (Alon Goldshuv)
-
-Improve speed of /contrib/tsearch2 index
-creation (Tom)
-
-
-
-  
-
-  Release 8.1.2
-
-  
-  Release date
-  2006-01-09
-  
-
-  
-   This release contains a variety of fixes from 8.1.1.
-   For information about new features in the 8.1 major release, see
-   .
-  
-
-  
-   Migration to Version 8.1.2
-
-   
-    A dump/restore is not required for those running 8.1.X.
-    However, you might need to REINDEX indexes on textual
-    columns after updating, if you are affected by the locale or
-    plperl issues described below.
-   
-  
-
-  
-   Changes
-
-
-
-Fix Windows code so that postmaster will continue rather
-than exit if there is no more room in ShmemBackendArray (Magnus)
-The previous behavior could lead to a denial-of-service situation if too
-many connection requests arrive close together.  This applies
-only to the Windows port.
-
-Fix bug introduced in 8.0 that could allow ReadBuffer
-to return an already-used page as new, potentially causing loss of
-recently-committed data (Tom)
-
-Fix for protocol-level Describe messages issued
-outside a transaction or in a failed transaction (Tom)
-
-Fix character string comparison for locales that consider
-different character combinations as equal, such as Hungarian (Tom)
-This might require REINDEX to fix existing indexes on
-textual columns.
-
-Set locale environment variables during postmaster startup
-to ensure that plperl won't change the locale later
-This fixes a problem that occurred if the postmaster was
-started with environment variables specifying a different locale than what
-initdb had been told.  Under these conditions, any use of
-plperl was likely to lead to corrupt indexes.  You might need
-REINDEX to fix existing indexes on
-textual columns if this has happened to you.
-
-Allow more flexible relocation of installation
-directories (Tom)
-Previous releases supported relocation only if all installation
-directory paths were the same except for the last component.
-
-Prevent crashes caused by the use of
-ISO-8859-5 and ISO-8859-9 encodings
-(Tatsuo)
-
-Fix longstanding bug in strpos() and regular expression
-handling in certain rarely used Asian multi-byte character sets (Tatsuo)
-
-
-Fix bug where COPY CSV mode considered any
-\. to terminate the copy data The new code
-requires \. to appear alone on a line, as per
-documentation.
-
-Make COPY CSV mode quote a literal data value of
-\. to ensure it cannot be interpreted as the
-end-of-data marker (Bruce)
-
-Various fixes for functions returning RECORDs
-(Tom) 
-
-Fix processing of postgresql.conf so a
-final line with no newline is processed properly (Tom)
-
-
-Fix bug in /contrib/pgcrypto gen_salt,
-which caused it not to use all available salt space for MD5 and
-XDES algorithms (Marko Kreen, Solar Designer)
-Salts for Blowfish and standard DES are unaffected.
-
-Fix autovacuum crash when processing expression indexes
-
-
-Fix /contrib/dblink to throw an error,
-rather than crashing, when the number of columns specified is different from
-what's actually returned by the query (Joe)
-
-
-
-  
-
-  Release 8.1.1
-
-  
-  Release date
-  2005-12-12
-  
-
-  
-   This release contains a variety of fixes from 8.1.0.
-   For information about new features in the 8.1 major release, see
-   .
-  
-
-  
-   Migration to Version 8.1.1
-
-   
-    A dump/restore is not required for those running 8.1.X.
-   
-  
-
-  
-   Changes
-
-
-Fix incorrect optimizations of outer-join conditions
-(Tom)
-
-Fix problems with wrong reported column names in cases
-involving sub-selects flattened by the optimizer (Tom)
-
-Fix update failures in scenarios involving CHECK constraints,
-toasted columns, and indexes (Tom)
-
-Fix bgwriter problems after recovering from errors
-(Tom)
-
-The background writer was found to leak buffer pins after write errors.
-While not fatal in itself, this might lead to mysterious blockages of
-later VACUUM commands.
-
-
-
-Prevent failure if client sends Bind protocol message
-when current transaction is already aborted
-
-/contrib/tsearch2 and /contrib/ltree
-fixes (Teodor)
-
-Fix problems with translated error messages in
-languages that require word reordering, such as Turkish; also problems with
-unexpected truncation of output strings and wrong display of the smallest
-possible bigint value (Andrew, Tom)
-
-These problems only appeared on platforms that were using our
-port/snprintf.c code, which includes BSD variants if
---enable-nls was given, and perhaps others.  In addition,
-a different form of the translated-error-message problem could appear
-on Windows depending on which version of libintl was used.
-
-
-Re-allow AM/PM, HH,
-HH12, and D format specifiers for
-to_char(time) and to_char(interval).
-(to_char(interval) should probably use
-HH24.) (Bruce)
-
-AIX, HPUX, and MSVC compile fixes (Tom, Hiroshi
-Saito)
-
-Optimizer improvements (Tom)
-
-Retry file reads and writes after Windows
-NO_SYSTEM_RESOURCES error (Qingqing Zhou)
-
-Prevent autovacuum from crashing during
-ANALYZE of expression index (Alvaro)
-
-Fix problems with ON COMMIT DELETE ROWS temp
-tables
-
-Fix problems when a trigger alters the output of a SELECT
-DISTINCT query
-
-Add 8.1.0 release note item on how to migrate invalid
-UTF-8 byte sequences (Paul Lindner)
-
-
-  
-
-  Release 8.1
-
-  
-   Release date
-   2005-11-08
-  
-
-  
-   Overview
-
-   
-    Major changes in this release:
-   
-
-   
-
-    
-     
-      Improve concurrent access to the shared buffer cache (Tom)
-     
-
-     
-      
-       Access to the shared buffer cache was identified as a
-       significant scalability problem, particularly on multi-CPU
-       systems. In this release, the way that locking is done in the
-       buffer manager has been overhauled to reduce lock contention
-       and improve scalability. The buffer manager has also been
-       changed to use a clock sweep replacement
-       policy.
-      
-     
-    
-
-    
-     
-      Allow index scans to use an intermediate in-memory bitmap (Tom)
-     
-
-     
-      
-       In previous releases, only a single index could be used to do
-       lookups on a table. With this feature, if a query has
-       WHERE tab.col1 = 4 and tab.col2 = 9, and there is
-       no multicolumn index on col1 and col2,
-       but there is an index on col1 and another on
-       col2, it is possible to search both indexes and
-       combine the results in memory, then do heap fetches for only
-       the rows matching both the col1 and
-       col2 restrictions. This is very useful in
-       environments that have a lot of unstructured queries where it
-       is impossible to create indexes that match all possible access
-       conditions.  Bitmap scans are useful even with a single index,
-       as they reduce the amount of random access needed; a bitmap
-       index scan is efficient for retrieving fairly large fractions
-       of the complete table, whereas plain index scans are not.
-      
-     
-    
-
-    
-     
-      Add two-phase commit (Heikki Linnakangas, Alvaro, Tom)
-     
-
-     
-      
-       Two-phase commit allows transactions to be "prepared" on several
-       computers, and once all computers have successfully prepared
-       their transactions (none failed), all transactions can be
-       committed. Even if a machine crashes after a prepare, the
-       prepared transaction can be committed after the machine is
-       restarted. New syntax includes PREPARE TRANSACTION and
-       COMMIT/ROLLBACK PREPARED. A new system view
-       pg_prepared_xacts has also been added.
-      
-     
-    
-
-    
-     
-      Create a new role system that replaces users and groups
-      (Stephen Frost)
-     
-
-     
-      
-       Roles are a combination of users and groups. Like users, they
-       can have login capability, and like groups, a role can have
-       other roles as members. Roles basically remove the distinction
-       between users and groups. For example, a role can:
-      
-
-      
-
-       
-        
-          Have login capability (optionally)
-        
-       
-
-       
-        
-         Own objects
-        
-       
-
-       
-        
-         Hold access permissions for database objects
-        
-       
-
-       
-        
-         Inherit permissions from other roles it is a member of
-        
-       
-
-      
-      
-       Once a user logs into a role, she obtains capabilities of
-       the login role plus any inherited roles, and can use
-       SET ROLE to switch to other roles she is a member of.
-       This feature is a generalization of the SQL standard's concept of
-       roles.
-       This change also replaces pg_shadow and
-       pg_group by new role-capable catalogs
-       pg_authid and pg_auth_members. The old
-       tables are redefined as read-only views on the new role tables.
-      
-     
-    
-
-    
-     
-      Automatically use indexes for MIN() and
-      MAX() (Tom)
-     
-
-     
-      
-       In previous releases, the only way to use an index for
-       MIN() or MAX() was to rewrite the
-       query as SELECT col FROM tab ORDER BY col LIMIT 1.
-       Index usage now happens automatically.
-      
-     
-    
-
-    
-     
-      Move /contrib/pg_autovacuum into the main server
-      (Alvaro)
-     
-
-     
-      
-       Integrating autovacuum into the server allows it to be
-       automatically started and stopped in sync with the database
-       server, and allows autovacuum to be configured from
-       postgresql.conf.
-      
-     
-    
-
-    
-     
-      Add shared row level locks using SELECT ... FOR SHARE
-      (Alvaro)
-     
-
-     
-      
-       While PostgreSQL's MVCC locking
-       allows SELECT to never be blocked by writers and
-       therefore does not need shared row locks for typical operations,
-       shared locks are useful for applications that require shared row
-       locking.  In particular this reduces the locking requirements
-       imposed by referential integrity checks.
-      
-     
-    
-
-    
-     
-      Add dependencies on shared objects, specifically roles
-      (Alvaro)
-     
-
-     
-      
-       This extension of the dependency mechanism prevents roles from
-       being dropped while there are still database objects they own.
-       Formerly it was possible to accidentally orphan objects by
-       deleting their owner.  While this could be recovered from, it
-       was messy and unpleasant.
-      
-     
-    
-
-    
-     
-      Improve performance for partitioned tables (Simon)
-     
-
-     
-      
-       The new constraint_exclusion configuration
-       parameter avoids lookups on child tables where constraints indicate
-       that no matching rows exist in the child table.
-      
-      
-       This allows for a basic type of table partitioning. If child tables
-       store separate key ranges and this is enforced using appropriate
-       CHECK constraints, the optimizer will skip child
-       table accesses when the constraint guarantees no matching rows
-       exist in the child table.
-      
-     
-    
-
-   
-  
-
-  
-   Migration to Version 8.1
-
-   
-    A dump/restore using pg_dump is required
-    for those wishing to migrate data from any previous release.
-   
-
-   
-    The 8.0 release announced that the to_char() function
-    for intervals would be removed in 8.1. However, since no better API
-    has been suggested, to_char(interval) has been enhanced in
-    8.1 and will remain in the server.
-   
-
-   
-    Observe the following incompatibilities:
-   
-
-   
-
-    
-     
-      add_missing_from is now false by default (Neil)
-     
-     
-      By default, we now generate an error if a table is used in a query
-      without a FROM reference.  The old behavior is still
-      available, but the parameter must be set to 'true' to obtain it.
-     
-
-     
-      It might be necessary to set add_missing_from to true
-      in order to load an existing dump file, if the dump contains any
-      views or rules created using the implicit-FROM syntax.
-      This should be a one-time annoyance, because
-      PostgreSQL 8.1 will convert
-      such views and rules to standard explicit-FROM syntax.
-      Subsequent dumps will therefore not have the problem.
-     
-    
-
-    
-     
-      Cause input of a zero-length string ('') for
-      float4/float8/oid
-      to throw an error, rather than treating it as a zero (Neil)
-     
-     
-      This change is consistent with the current handling of
-      zero-length strings for integers. The schedule for this change
-      was announced in 8.0.
-     
-    
-
-    
-     
-      default_with_oids is now false by default (Neil)
-     
-     
-      With this option set to false, user-created tables no longer
-      have an OID column unless WITH OIDS is specified in
-      CREATE TABLE. Though OIDs have existed in all
-      releases of PostgreSQL, their use is limited
-      because they are only four bytes long and the counter is shared
-      across all installed databases. The preferred way of uniquely
-      identifying rows is via sequences and the SERIAL type,
-      which have been supported since PostgreSQL 6.4.
-     
-    
-
-    
-     
-      Add E'' syntax so eventually ordinary strings can
-      treat backslashes literally (Bruce)
-     
-     
-      Currently PostgreSQL processes a
-      backslash in a string literal as introducing a special escape sequence,
-      e.g. \n or \010.
-      While this allows easy entry of special values, it is
-      nonstandard and makes porting of applications from other
-      databases more difficult. For this reason, the
-      PostgreSQL project is planning to
-      remove the special meaning of backslashes in strings. For
-      backward compatibility and for users who want special backslash
-      processing, a new string syntax has been created. This new string
-      syntax is formed by writing an E immediately preceding the
-      single quote that starts the string, e.g. E'hi\n'. While
-      this release does not change the handling of backslashes in strings, it
-      does add new configuration parameters to help users migrate applications
-      for future releases:
-     
-     
-
-      
-       
-        standard_conforming_strings — does this release
-        treat backslashes literally in ordinary strings?
-       
-      
-
-      
-      
-       escape_string_warning — warn about backslashes in
-       ordinary (non-E) strings
-      
-     
-
-     
-
-     
-      The standard_conforming_strings value is read-only.
-      Applications can retrieve the value to know how backslashes are
-      processed.  (Presence of the parameter can also be taken as an
-      indication that E'' string syntax is supported.)
-      In a future release, standard_conforming_strings
-      will be true, meaning backslashes will be treated literally in
-      non-E strings. To prepare for this change, use E''
-      strings in places that need special backslash processing, and
-      turn on escape_string_warning to find additional
-      strings that need to be converted to use E''.
-      Also, use two single-quotes ('') to embed a literal
-      single-quote in a string, rather than the
-      PostgreSQL-supported syntax of
-      backslash single-quote (\').  The former is
-      standards-conforming and does not require the use of the
-      E'' string syntax.  You can also use the
-      $$ string syntax, which does not treat backslashes
-      specially.
-     
-    
-
-    
-     
-      Make REINDEX DATABASE reindex all indexes in the
-      database (Tom)
-     
-     
-      Formerly, REINDEX DATABASE reindexed only
-      system tables. This new behavior seems more intuitive. A new
-      command REINDEX SYSTEM provides the old functionality
-      of reindexing just the system tables.
-     
-    
-
-    
-     
-      Read-only large object descriptors now obey MVCC snapshot semantics
-     
-     
-      When a large object is opened with INV_READ (and not
-      INV_WRITE), the data read from the descriptor will now
-      reflect a snapshot of the large object's state at the
-      time of the transaction snapshot in use by the query that called
-      lo_open().  To obtain the old behavior of always
-      returning the latest committed data, include INV_WRITE
-      in the mode flags for lo_open().
-     
-    
-
-    
-     
-      Add proper dependencies for arguments of sequence functions (Tom)
-     
-     
-      In previous releases, sequence names passed to nextval(),
-      currval(), and setval() were stored as
-      simple text strings, meaning that renaming or dropping a
-      sequence used in a DEFAULT clause made the clause
-      invalid. This release stores all newly-created sequence function
-      arguments as internal OIDs, allowing them to track sequence
-      renaming, and adding dependency information that prevents
-      improper sequence removal. It also makes such DEFAULT
-      clauses immune to schema renaming and search path changes.
-     
-     
-      Some applications might rely on the old behavior of
-      run-time lookup for sequence names. This can still be done by
-      explicitly casting the argument to text, for example
-      nextval('myseq'::text).
-     
-     
-      Pre-8.1 database dumps loaded into 8.1 will use the old text-based
-      representation and therefore will not have the features of
-      OID-stored arguments. However, it is possible to update a
-      database containing text-based DEFAULT clauses.
-      First, save this query into a file, such as fixseq.sql:
-
-SELECT  'ALTER TABLE ' ||
-   pg_catalog.quote_ident(n.nspname) || '.' ||
-   pg_catalog.quote_ident(c.relname) ||
-   ' ALTER COLUMN ' || pg_catalog.quote_ident(a.attname) ||
-   ' SET DEFAULT ' ||
-   regexp_replace(d.adsrc,
-                  $$val\(\(('[^']*')::text\)::regclass$$,
-                  $$val(\1$$,
-                  'g') ||
-   ';'
-FROM    pg_namespace n, pg_class c, pg_attribute a, pg_attrdef d
-WHERE   n.oid = c.relnamespace AND
-   c.oid = a.attrelid AND
-   a.attrelid = d.adrelid AND
-   a.attnum = d.adnum AND
-   d.adsrc ~ $$val\(\('[^']*'::text\)::regclass$$;
-
-      Next, run the query against a database to find what
-      adjustments are required, like this for database db1:
-
-psql -t -f fixseq.sql db1
-
-      This will show the ALTER TABLE commands needed to
-      convert the database to the newer OID-based representation.
-      If the commands look reasonable, run this to update the database:
-
-psql -t -f fixseq.sql db1 | psql -e db1
-
-      This process must be repeated in each database to be updated.
-     
-    
-
-    
-     
-      In psql, treat unquoted
-      \{digit}+ sequences as octal (Bruce)
-     
-     
-      In previous releases, \{digit}+ sequences were
-      treated as decimal, and only \0{digit}+ were treated
-      as octal. This change was made for consistency.
-     
-    
-
-    
-     
-      Remove grammar productions for prefix and postfix %
-      and ^ operators
-      (Tom)
-     
-     
-      These have never been documented and complicated the use of the
-      modulus operator (%) with negative numbers.
-     
-    
-
-    
-     
-      Make &< and &> for polygons
-      consistent with the box "over" operators (Tom)
-     
-    
-
-    
-     
-      CREATE LANGUAGE can ignore the provided arguments
-      in favor of information from pg_pltemplate
-      (Tom)
-     
-     
-      A new system catalog pg_pltemplate has been defined
-      to carry information about the preferred definitions of procedural
-      languages (such as whether they have validator functions).  When
-      an entry exists in this catalog for the language being created,
-      CREATE LANGUAGE will ignore all its parameters except the
-      language name and instead use the catalog information.  This measure
-      was taken because of increasing problems with obsolete language
-      definitions being loaded by old dump files.  As of 8.1,
-      pg_dump will dump procedural language definitions as
-      just CREATE LANGUAGE name, relying
-      on a template entry to exist at load time.  We expect this will be a
-      more future-proof representation.
-     
-    
-
-    
-     
-      Make pg_cancel_backend(int) return a
-      boolean rather than an integer (Neil)
-     
-    
-
-    
-     
-      Some users are having problems loading UTF-8 data into 8.1.X.
-      This is because previous versions allowed invalid UTF-8 byte
-      sequences to be entered into the database, and this release
-      properly accepts only valid UTF-8 sequences. One way to correct a
-      dumpfile is to run the command iconv -c -f UTF-8 -t
-      UTF-8 -o cleanfile.sql dumpfile.sql. The -c option
-      removes invalid character sequences. A diff of the two files will
-      show the sequences that are invalid. iconv reads the
-      entire input file into memory so it might be necessary to use
-      split to break up the dump into multiple smaller
-      files for processing.
-     
-    
-
-   
-  
-
-  
-   Additional Changes
-
-   
-    Below you will find a detailed account of the additional changes
-    between PostgreSQL 8.1 and the
-    previous major release.
-   
-
-   
-    Performance Improvements
-    
-
-     
-      
-       Improve GiST and R-tree index performance (Neil)
-      
-     
-
-     
-      
-       Improve the optimizer, including auto-resizing of hash joins
-       (Tom)
-      
-     
-
-     
-      
-       Overhaul internal API in several areas
-      
-     
-
-     
-      
-       Change WAL record CRCs from 64-bit to 32-bit (Tom)
-      
-      
-       We determined that the extra cost of computing 64-bit CRCs was
-       significant, and the gain in reliability too marginal to justify it.
-      
-     
-
-     
-      
-       Prevent writing large empty gaps in WAL pages (Tom)
-      
-     
-
-     
-      
-       Improve spinlock behavior on SMP machines, particularly Opterons (Tom)
-      
-     
-
-     
-      
-       Allow nonconsecutive index columns to be used in a multicolumn
-       index (Tom)
-      
-      
-       For example, this allows an index on columns a,b,c to be used in
-       a query with WHERE a = 4 and c = 10.
-      
-     
-
-     
-      
-       Skip WAL logging for CREATE TABLE AS /
-       SELECT INTO (Simon)
-      
-      
-       Since a crash during CREATE TABLE AS would cause the
-       table to be dropped during recovery, there is no reason to WAL
-       log as the table is loaded.  (Logging still happens if WAL
-       archiving is enabled, however.)
-      
-     
-
-     
-      
-       Allow concurrent GiST index access (Teodor, Oleg)
-      
-     
-
-     
-      
-       Add configuration parameter full_page_writes to
-       control writing full pages to WAL (Bruce)
-      
-      
-       To prevent partial disk writes from corrupting the database,
-       PostgreSQL writes a complete copy of
-       each database disk page to WAL the first time it is modified
-       after a checkpoint. This option turns off that functionality for more
-       speed.  This is safe to use with battery-backed disk caches where
-       partial page writes cannot happen.
-      
-     
-
-     
-      
-       Use O_DIRECT if available when using
-       O_SYNC for wal_sync_method
-       (Itagaki Takahiro)
-      
-      
-       O_DIRECT causes disk writes to bypass the kernel
-       cache, and for WAL writes, this improves performance.
-      
-     
-
-     
-      
-       Improve COPY FROM performance (Alon Goldshuv)
-      
-      
-       This was accomplished by reading COPY input in
-       larger chunks, rather than character by character.
-      
-     
-
-     
-      
-       Improve the performance of COUNT(),
-       SUMAVG(),
-       STDDEV(), and
-       VARIANCE() (Neil, Tom)
-      
-     
-    
-   
-
-   
-    Server Changes
-    
-
-     
-      
-       Prevent problems due to transaction ID (XID) wraparound (Tom)
-      
-      
-       The server will now warn when the transaction counter approaches
-       the wraparound point.  If the counter becomes too close to wraparound,
-       the server will stop accepting queries.  This ensures that data is
-       not lost before needed vacuuming is performed.
-      
-     
-
-     
-      
-       Fix problems with object IDs (OIDs) conflicting with existing system
-       objects after the OID counter has wrapped around (Tom)
-      
-     
-
-     
-      
-       Add warning about the need to increase
-       max_fsm_relations and max_fsm_pages
-       during VACUUM (Ron Mayer)
-      
-     
-
-     
-      
-       Add temp_buffers configuration parameter to allow
-       users to determine the size of the local buffer area for
-       temporary table access (Tom)
-      
-     
-
-     
-      
-       Add session start time and client IP address to
-       pg_stat_activity (Magnus)
-      
-     
-
-     
-      
-       Adjust pg_stat views for bitmap scans (Tom)
-      
-      
-       The meanings of some of the fields have changed slightly.
-      
-     
-
-     
-      
-       Enhance pg_locks view (Tom)
-      
-     
-
-     
-      
-       Log queries for client-side PREPARE and
-       EXECUTE (Simon)
-      
-     
-
-     
-      
-       Allow Kerberos name and user name case sensitivity to be
-       specified in postgresql.conf (Magnus)
-      
-     
-
-     
-      
-       Add configuration parameter krb_server_hostname so
-       that the server host name can be specified as part of service
-       principal (Todd Kover)
-      
-      
-       If not set, any service principal matching an entry in the
-       keytab can be used. This is new Kerberos matching behavior in
-       this release.
-      
-     
-
-     
-      
-       Add log_line_prefix options for millisecond
-       timestamps (%m) and remote host (%h) (Ed
-       L.)
-      
-     
-
-     
-      
-       Add WAL logging for GiST indexes (Teodor, Oleg)
-      
-      
-       GiST indexes are now safe for crash and point-in-time recovery.
-      
-     
-
-     
-      
-       Remove old *.backup files when we do
-       pg_stop_backup() (Bruce)
-      
-      
-       This prevents a large number of *.backup files from
-       existing in pg_xlog/.
-      
-     
-
-     
-      
-       Add configuration parameters to control TCP/IP keep-alive
-       times for idle, interval, and count (Oliver Jowett)
-      
-
-      
-       These values can be changed to allow more rapid detection of
-       lost client connections.
-      
-     
-
-     
-      
-       Add per-user and per-database connection limits (Petr Jelinek)
-      
-      
-       Using ALTER USER and ALTER DATABASE,
-       limits can now be enforced on the maximum number of sessions that
-       can concurrently connect as a specific user or to a specific database.
-       Setting the limit to zero disables user or database connections.
-      
-     
-
-     
-      
-       Allow more than two gigabytes of shared memory and per-backend
-       work memory on 64-bit machines (Koichi Suzuki)
-      
-     
-
-     
-      
-       New system catalog pg_pltemplate allows overriding
-       obsolete procedural-language definitions in dump files (Tom)
-      
-     
-
-    
-   
-
-
-   
-    Query Changes
-    
-
-     
-      
-       Add temporary views (Koju Iijima, Neil)
-      
-     
-
-     
-      
-       Fix HAVING without any aggregate functions or
-       GROUP BY so that the query returns a single group (Tom)
-      
-      
-       Previously, such a case would treat the HAVING
-       clause the same as a WHERE clause.  This was not per spec.
-      
-     
-
-     
-      
-       Add USING clause to allow additional tables to be
-       specified to DELETE (Euler Taveira de Oliveira, Neil)
-      
-      
-       In prior releases, there was no clear method for specifying
-       additional tables to be used for joins in a DELETE
-       statement. UPDATE already has a FROM
-       clause for this purpose.
-      
-     
-
-     
-      
-       Add support for \x hex escapes in backend and ecpg
-       strings (Bruce)
-      
-      
-       This is just like the standard C \x escape syntax.
-       Octal escapes were already supported.
-      
-     
-
-     
-      
-       Add BETWEEN SYMMETRIC query syntax (Pavel Stehule)
-      
-      
-       This feature allows BETWEEN comparisons without
-       requiring the first value to be less than the second. For
-       example, 2 BETWEEN [ASYMMETRIC] 3 AND 1 returns
-       false, while 2 BETWEEN SYMMETRIC 3 AND 1 returns
-       true. BETWEEN ASYMMETRIC was already supported.
-      
-     
-
-     
-      
-       Add NOWAIT option to SELECT ... FOR
-       UPDATE/SHARE (Hans-Juergen Schoenig)
-      
-      
-       While the statement_timeout configuration
-       parameter allows a query taking more than a certain amount of
-       time to be cancelled, the NOWAIT option allows a
-       query to be canceled as soon as a SELECT ... FOR
-       UPDATE/SHARE command cannot immediately acquire a row lock.
-      
-     
-    
-   
-
-
-   
-    Object Manipulation Changes
-    
-
-     
-      
-       Track dependencies of shared objects (Alvaro)
-      
-      
-       PostgreSQL allows global tables
-       (users, databases, tablespaces) to reference information in
-       multiple databases. This addition adds dependency information
-       for global tables, so, for example, user ownership can be
-       tracked across databases, so a user who owns something in any
-       database can no longer be removed. Dependency tracking already
-       existed for database-local objects.
-      
-     
-
-     
-      
-       Allow limited ALTER OWNER commands to be performed
-       by the object owner (Stephen Frost)
-      
-      
-       Prior releases allowed only superusers to change object owners.
-       Now, ownership can be transferred if the user executing the command
-       owns the object and would be able to create it as the new owner
-       (that is, the user is a member of the new owning role and that role
-       has the CREATE permission that would be needed to create the object
-       afresh).
-      
-     
-
-     
-      
-       Add ALTER object SET SCHEMA capability
-       for some object types (tables, functions, types) (Bernd Helmle)
-      
-      
-       This allows objects to be moved to different schemas.
-      
-     
-
-     
-      
-       Add ALTER TABLE ENABLE/DISABLE TRIGGER to
-       disable triggers (Satoshi Nagayasu)
-      
-     
-
-    
-   
-
-
-   
-    Utility Command Changes
-    
-
-     
-      
-       Allow TRUNCATE to truncate multiple tables in a
-       single command (Alvaro)
-      
-      
-       Because of referential integrity checks, it is not allowed to
-       truncate a table that is part of a referential integrity
-       constraint. Using this new functionality, TRUNCATE
-       can be used to truncate such tables, if both tables involved in
-       a referential integrity constraint are truncated in a single
-       TRUNCATE command.
-      
-     
-
-     
-      
-       Properly process carriage returns and line feeds in
-       COPY CSV mode (Andrew)
-      
-      
-       In release 8.0, carriage returns and line feeds in CSV
-       COPY TO were processed in an inconsistent manner. (This was
-       documented on the TODO list.)
-      
-     
-
-     
-      
-       Add COPY WITH CSV HEADER to allow a header line as
-       the first line in COPY (Andrew)
-      
-      
-       This allows handling of the common CSV usage of
-       placing the column names on the first line of the data file. For
-       COPY TO, the first line contains the column names,
-       and for COPY FROM, the first line is ignored.
-      
-     
-
-     
-      
-       On Windows, display better sub-second precision in
-       EXPLAIN ANALYZE (Magnus)
-      
-     
-
-     
-      
-       Add trigger duration display to EXPLAIN ANALYZE
-       (Tom)
-      
-      
-       Prior releases included trigger execution time as part of the
-       total execution time, but did not show it separately.  It is now
-       possible to see how much time is spent in each trigger.
-      
-     
-
-     
-      
-       Add support for \x hex escapes in COPY
-       (Sergey Ten)
-      
-      
-       Previous releases only supported octal escapes.
-      
-     
-
-     
-      
-       Make SHOW ALL include variable descriptions
-       (Matthias Schmidt)
-      
-      
-       SHOW varname still only displays the variable's
-       value and does not include the description.
-      
-     
-
-     
-      
-       Make initdb create a new standard
-       database called postgres, and convert utilities to
-       use postgres rather than template1 for
-       standard lookups (Dave)
-      
-      
-       In prior releases, template1 was used both as a
-       default connection for utilities like
-       createuser, and as a template for
-       new databases. This caused CREATE DATABASE to
-       sometimes fail, because a new database cannot be created if
-       anyone else is in the template database. With this change, the
-       default connection database is now postgres,
-       meaning it is much less likely someone will be using
-       template1 during CREATE DATABASE.
-      
-     
-
-     
-      
-       Create new reindexdb command-line
-       utility by moving /contrib/reindexdb into the
-       server (Euler Taveira de Oliveira)
-      
-     
-
-    
-   
-
-
-   
-    Data Type and Function Changes
-    
-
-     
-      
-       Add MAX() and MIN() aggregates for
-       array types (Koju Iijima)
-      
-     
-
-     
-      
-       Fix to_date() and to_timestamp() to
-       behave reasonably when CC and YY fields
-       are both used (Karel Zak)
-      
-      
-       If the format specification contains CC and a year
-       specification is YYY or longer, ignore the
-       CC. If the year specification is YY or
-       shorter, interpret CC as the previous century.
-      
-     
-
-     
-      
-       Add md5(bytea) (Abhijit Menon-Sen)
-      
-      
-       md5(text) already existed.
-      
-     
-
-     
-      
-       Add support for numeric ^ numeric based on
-       power(numeric, numeric)
-      
-      
-       The function already existed, but there was no operator assigned
-       to it.
-      
-     
-
-     
-      
-       Fix NUMERIC modulus by properly truncating the quotient
-       during computation (Bruce)
-      
-      
-       In previous releases, modulus for large values sometimes
-       returned negative results due to rounding of the quotient.
-      
-     
-
-     
-      
-       Add a function lastval() (Dennis Björklund)
-      
-      
-       lastval() is a simplified version of
-       currval(). It automatically determines the proper
-       sequence name based on the most recent nextval() or
-       setval() call performed by the current session.
-      
-     
-
-     
-      
-       Add to_timestamp(DOUBLE PRECISION) (Michael Glaesemann)
-      
-      
-       Converts Unix seconds since 1970 to a TIMESTAMP WITH
-       TIMEZONE.
-      
-     
-
-     
-      
-       Add pg_postmaster_start_time() function (Euler
-       Taveira de Oliveira, Matthias Schmidt)
-      
-     
-
-     
-      
-       Allow the full use of time zone names in AT TIME
-       ZONE, not just the short list previously available (Magnus)
-      
-      
-       Previously, only a predefined list of time zone names were
-       supported by AT TIME ZONE. Now any supported time
-       zone name can be used, e.g.:
-       
-        SELECT CURRENT_TIMESTAMP AT TIME ZONE 'Europe/London';
-       
-       In the above query, the time zone used is adjusted based on the
-       daylight saving time rules that were in effect on the supplied
-       date.
-      
-     
-
-     
-      
-       Add GREATEST() and LEAST() variadic
-       functions (Pavel Stehule)
-      
-      
-       These functions take a variable number of arguments and return
-       the greatest or least value among the arguments.
-      
-     
-
-     
-      
-       Add pg_column_size() (Mark Kirkwood)
-      
-      
-       This returns storage size of a column, which might be compressed.
-      
-     
-
-     
-      
-       Add regexp_replace() (Atsushi Ogawa)
-      
-      
-       This allows regular expression replacement, like sed. An optional
-       flag argument allows selection of global (replace all) and
-       case-insensitive modes.
-      
-     
-
-     
-      
-       Fix interval division and multiplication (Bruce)
-      
-      
-       Previous versions sometimes returned unjustified results, like
-       '4 months'::interval / 5 returning '1 mon
-       -6 days'.
-      
-     
-
-     
-      
-       Fix roundoff behavior in timestamp, time, and interval output (Tom)
-      
-      
-       This fixes some cases in which the seconds field would be shown as
-       60 instead of incrementing the higher-order fields.
-      
-     
-
-     
-      
-       Add a separate day field to type interval so a one day
-       interval can be distinguished from a 24 hour interval (Michael
-       Glaesemann)
-      
-      
-       Days that contain a daylight saving time adjustment are not 24
-       hours long, but typically 23 or 25 hours.  This change creates a
-       conceptual distinction between intervals of so many days
-       and intervals of so many hours.  Adding
-       1 day to a timestamp now gives the same local time on
-       the next day even if a daylight saving time adjustment occurs
-       between, whereas adding 24 hours will give a different
-       local time when this happens.  For example, under US DST rules:
-       
-        '2005-04-03 00:00:00-05' + '1 day' = '2005-04-04 00:00:00-04'
-        '2005-04-03 00:00:00-05' + '24 hours' = '2005-04-04 01:00:00-04'
-       
-      
-     
-
-     
-      
-       Add justify_days() and justify_hours()
-       (Michael Glaesemann)
-      
-      
-       These functions, respectively, adjust days to an appropriate
-       number of full months and days, and adjust hours to an
-       appropriate number of full days and hours.
-      
-     
-
-     
-      
-       Move /contrib/dbsize into the backend, and rename
-       some of the functions (Dave Page, Andreas Pflug)
-      
-      
-       
-
-        
-         
-           pg_tablespace_size()
-         
-        
-
-        
-         
-          pg_database_size()
-         
-        
-
-        
-         
-          pg_relation_size()
-         
-        
-
-        
-         
-          pg_total_relation_size()
-         
-        
-
-        
-         
-          pg_size_pretty()
-         
-        
-
-       
-      
-      
-       pg_total_relation_size() includes indexes and TOAST
-       tables.
-      
-     
-
-     
-      
-       Add functions for read-only file access to the cluster directory
-       (Dave Page, Andreas Pflug)
-      
-      
-       
-
-        
-         
-          pg_stat_file()
-         
-        
-
-        
-         
-          pg_read_file()
-         
-        
-
-        
-         
-          pg_ls_dir()
-         
-        
-
-       
-      
-     
-
-     
-      
-       Add pg_reload_conf() to force reloading of the
-       configuration files (Dave Page, Andreas Pflug)
-      
-     
-
-     
-      
-       Add pg_rotate_logfile() to force rotation of the
-       server log file (Dave Page, Andreas Pflug)
-      
-     
-
-     
-      
-       Change pg_stat_* views to include TOAST tables (Tom)
-      
-     
-
-    
-   
-
-
-   
-    Encoding and Locale Changes
-    
-
-     
-      
-       Rename some encodings to be more consistent and to follow
-       international standards (Bruce)
-      
-      
-       
-
-        
-         
-          UNICODE is now UTF8
-         
-        
-
-        
-         
-          ALT is now WIN866
-         
-        
-
-        
-         
-          WIN is now WIN1251
-         
-        
-
-        
-         
-         TCVN is now WIN1258
-         
-        
-
-       
-      
-
-      
-       The original names still work.
-      
-     
-
-     
-      
-       Add support for WIN1252 encoding (Roland Volkmann)
-      
-     
-
-     
-      
-       Add support for four-byte UTF8 characters (John
-       Hansen)
-      
-      
-       Previously only one, two, and three-byte UTF8 characters
-       were supported. This is particularly important for support for
-       some Chinese character sets.
-      
-     
-
-     
-      
-       Allow direct conversion between EUC_JP and
-       SJIS to improve performance (Atsushi Ogawa)
-      
-     
-
-     
-      
-       Allow the UTF8 encoding to work on Windows (Magnus)
-      
-      
-       This is done by mapping UTF8 to the Windows-native UTF16
-       implementation.
-      
-     
-
-    
-   
-
-
-   
-    General Server-Side Language Changes
-    
-
-     
-      
-       Fix ALTER LANGUAGE RENAME (Sergey Yatskevich)
-      
-     
-
-     
-      
-       Allow function characteristics, like strictness and volatility,
-       to be modified via ALTER FUNCTION (Neil)
-      
-     
-
-     
-      
-       Increase the maximum number of function arguments to 100 (Tom)
-      
-     
-
-     
-      
-       Allow SQL and PL/PgSQL functions to use OUT and
-       INOUT parameters (Tom)
-      
-      
-       OUT is an alternate way for a function to return
-       values. Instead of using RETURN, values can be
-       returned by assigning to parameters declared as OUT or
-       INOUT.  This is notationally simpler in some cases,
-       particularly so when multiple values need to be returned.
-       While returning multiple values from a function
-       was possible in previous releases, this greatly simplifies the
-       process.  (The feature will be extended to other server-side
-       languages in future releases.)
-      
-     
-
-     
-      
-       Move language handler functions into the pg_catalog schema
-      
-      
-       This makes it easier to drop the public schema if desired.
-      
-     
-
-     
-      
-       Add SPI_getnspname() to SPI (Neil)
-      
-     
-
-    
-   
-
-   
-    PL/PgSQL Server-Side Language Changes
-    
-
-     
-      
-       Overhaul the memory management of PL/PgSQL functions (Neil)
-      
-      
-       The parsetree of each function is now stored in a separate
-       memory context. This allows this memory to be easily reclaimed
-       when it is no longer needed.
-      
-     
-
-     
-      
-       Check function syntax at CREATE FUNCTION time,
-       rather than at runtime (Neil)
-      
-      
-       Previously, most syntax errors were reported only when the
-       function was executed.
-      
-     
-
-     
-      
-       Allow OPEN to open non-SELECT queries
-       like EXPLAIN and SHOW (Tom)
-      
-     
-
-     
-      
-       No longer require functions to issue a RETURN
-       statement (Tom)
-      
-      
-       This is a byproduct of the newly added OUT and
-       INOUT functionality.  RETURN can
-       be omitted when it is not needed to provide the function's
-       return value.
-      
-     
-
-     
-      
-       Add support for an optional INTO clause to
-       PL/PgSQL's EXECUTE statement (Pavel Stehule, Neil)
-      
-     
-
-     
-      
-       Make CREATE TABLE AS set ROW_COUNT (Tom)
-      
-     
-
-     
-      
-       Define SQLSTATE and SQLERRM to return
-       the SQLSTATE and error message of the current
-       exception (Pavel Stehule, Neil)
-      
-      
-       These variables are only defined inside exception blocks.
-      
-     
-
-     
-      
-       Allow the parameters to the RAISE statement to be
-       expressions (Pavel Stehule, Neil)
-      
-     
-
-     
-      
-       Add a loop CONTINUE statement (Pavel Stehule, Neil)
-      
-     
-
-     
-      
-       Allow block and loop labels (Pavel Stehule)
-      
-     
-
-    
-   
-
-
-   
-    PL/Perl Server-Side Language Changes
-    
-
-     
-      
-       Allow large result sets to be returned efficiently (Abhijit
-       Menon-Sen)
-      
-      
-       This allows functions to use return_next() to avoid
-       building the entire result set in memory.
-      
-     
-
-     
-      
-       Allow one-row-at-a-time retrieval of query results (Abhijit Menon-Sen)
-      
-      
-       This allows functions to use spi_query() and
-       spi_fetchrow() to avoid accumulating the entire
-       result set in memory.
-      
-     
-
-     
-      
-       Force PL/Perl to handle strings as UTF8 if the
-       server encoding is UTF8 (David Kamholz)
-      
-     
-
-     
-      
-       Add a validator function for PL/Perl (Andrew)
-      
-      
-       This allows syntax errors to be reported at definition time,
-       rather than execution time.
-      
-     
-
-     
-      
-       Allow PL/Perl to return a Perl array when the function returns
-       an array type (Andrew)
-      
-      
-       This basically maps PostgreSQL arrays
-       to Perl arrays.
-      
-     
-
-     
-      
-       Allow Perl nonfatal warnings to generate NOTICE
-       messages (Andrew)
-      
-     
-
-     
-      
-       Allow Perl's strict mode to be enabled (Andrew)
-      
-     
-
-    
-   
-
-
-   
-    <application>psql</> Changes
-    
-
-     
-      
-       Add \set ON_ERROR_ROLLBACK to allow statements in
-       a transaction to error without affecting the rest of the
-       transaction (Greg Sabino Mullane)
-      
-      
-       This is basically implemented by wrapping every statement in a
-       sub-transaction.
-      
-     
-
-     
-      
-       Add support for \x hex strings in
-       psql variables (Bruce)
-      
-      
-       Octal escapes were already supported.
-      
-     
-
-     
-      
-       Add support for troff -ms output format (Roger
-       Leigh)
-      
-     
-
-     
-      
-       Allow the history file location to be controlled by
-       HISTFILE (Andreas Seltenreich)
-      
-      
-       This allows configuration of per-database history storage.
-      
-     
-
-     
-      
-       Prevent \x (expanded mode) from affecting
-       the output of \d tablename (Neil)
-      
-     
-
-     
-      
-       Add 
-       log sessions (Lorne Sunley)
-      
-      
-       This option was added because some operating systems do not have
-       simple command-line activity logging functionality.
-      
-     
-
-     
-      
-       Make \d show the tablespaces of indexes (Qingqing
-       Zhou)
-      
-     
-
-     
-      
-       Allow psql help (\h) to
-       make a best guess on the proper help information (Greg Sabino
-       Mullane)
-      
-      
-       This allows the user to just add \h to the front of
-       the syntax error query and get help on the supported syntax.
-       Previously any additional query text beyond the command name
-       had to be removed to use \h.
-      
-     
-
-     
-      
-       Add \pset numericlocale to allow numbers to be
-       output in a locale-aware format (Eugen Nedelcu)
-      
-      
-       For example, using C locale 100000 would
-       be output as 100,000.0 while a European locale might
-       output this value as 100.000,0.
-      
-     
-
-     
-      
-       Make startup banner show both server version number and
-       psql's version number, when they are different (Bruce)
-      
-      
-       Also, a warning will be shown if the server and psql
-       are from different major releases.
-      
-     
-
-    
-   
-
-
-   
-    <application>pg_dump</> Changes
-    
-
-     
-      
-       Add 
-       pg_restore (Richard van den Berg)
-      
-      
-       This allows just the objects in a specified schema to be restored.
-      
-     
-
-     
-      
-       Allow pg_dump to dump large objects even in
-       text mode (Tom)
-      
-      
-       With this change, large objects are now always dumped; the former
-       
-      
-     
-
-     
-      
-       Allow pg_dump to dump a consistent snapshot of
-       large objects (Tom)
-      
-     
-
-     
-      
-       Dump comments for large objects (Tom)
-      
-     
-
-     
-      
-       Add 
-       (Magnus Hagander)
-      
-      
-       This allows a database to be dumped in an encoding that is
-       different from the server's encoding. This is valuable when
-       transferring the dump to a machine with a different encoding.
-      
-     
-
-     
-      
-       Rely on pg_pltemplate for procedural languages (Tom)
-      
-      
-       If the call handler for a procedural language is in the
-       pg_catalog schema, pg_dump does not
-       dump the handler.  Instead, it dumps the language using just
-       CREATE LANGUAGE name,
-       relying on the pg_pltemplate catalog to provide
-       the language's creation parameters at load time.
-      
-     
-
-    
-   
-
-
-   
-    <application>libpq</application> Changes
-    
-
-     
-      
-       Add a PGPASSFILE environment variable to specify the
-       password file's filename (Andrew)
-      
-     
-
-     
-      
-       Add lo_create(), that is similar to
-       lo_creat() but allows the OID of the large object
-       to be specified (Tom)
-      
-     
-
-     
-      
-       Make libpq consistently return an error
-       to the client application on malloc()
-       failure (Neil)
-      
-     
-    
-   
-
-
-   
-    Source Code Changes
-    
-
-     
-      
-       Fix pgxs to support building against a relocated
-       installation
-      
-     
-
-     
-      
-       Add spinlock support for the Itanium processor using Intel
-       compiler (Vikram Kalsi)
-      
-     
-
-     
-      
-       Add Kerberos 5 support for Windows (Magnus)
-      
-     
-
-     
-      
-       Add Chinese FAQ ([email protected])
-      
-     
-
-     
-      
-       Rename Rendezvous to Bonjour to match OS/X feature renaming
-       (Bruce)
-      
-     
-
-     
-      
-       Add support for fsync_writethrough on
-       Darwin (Chris Campbell)
-      
-     
-
-     
-      
-       Streamline the passing of information within the server, the
-       optimizer, and the lock system (Tom)
-      
-     
-
-     
-      
-       Allow pg_config to be compiled using MSVC (Andrew)
-      
-      
-       This is required to build DBD::Pg using MSVC.
-      
-     
-
-     
-      
-       Remove support for Kerberos V4 (Magnus)
-      
-      
-       Kerberos 4 had security vulnerabilities and is no longer
-       maintained.
-      
-     
-
-     
-      
-       Code cleanups (Coverity static analysis performed by
-       EnterpriseDB)
-      
-     
-
-     
-      
-       Modify postgresql.conf to use documentation defaults
-       on/off rather than
-       true/false (Bruce)
-      
-     
-
-     
-      
-       Enhance pg_config to be able to report more
-       build-time values (Tom)
-      
-     
-
-     
-      
-       Allow libpq to be built thread-safe
-       on Windows (Dave Page)
-      
-     
-
-     
-      
-       Allow IPv6 connections to be used on Windows (Andrew)
-      
-     
-
-     
-      
-       Add Server Administration documentation about I/O subsystem
-       reliability (Bruce)
-      
-     
-
-     
-      
-       Move private declarations from gist.h to
-       gist_private.h (Neil)
-      
-
-      
-       In previous releases, gist.h contained both the
-       public GiST API (intended for use by authors of GiST index
-       implementations) as well as some private declarations used by
-       the implementation of GiST itself. The latter have been moved
-       to a separate file, gist_private.h. Most GiST
-       index implementations should be unaffected.
-      
-     
-
-     
-      
-       Overhaul GiST memory management (Neil)
-      
-
-      
-       GiST methods are now always invoked in a short-lived memory
-       context. Therefore, memory allocated via palloc()
-       will be reclaimed automatically, so GiST index implementations
-       do not need to manually release allocated memory via
-       pfree().
-      
-     
-    
-   
-
-
-   
-    Contrib Changes
-    
-
-     
-      
-       Add /contrib/pg_buffercache contrib module (Mark
-       Kirkwood)
-      
-      
-       This displays the contents of the buffer cache, for debugging and
-       performance tuning purposes.
-      
-     
-
-     
-      
-       Remove /contrib/array because it is obsolete (Tom)
-      
-     
-
-     
-      
-       Clean up the /contrib/lo module (Tom)
-      
-     
-
-     
-      
-       Move /contrib/findoidjoins to
-       /src/tools (Tom)
-      
-     
-
-     
-      
-       Remove the <<, >>,
-       &<, and &> operators from
-       /contrib/cube
-      
-      
-       These operators were not useful.
-      
-     
-
-     
-      
-       Improve /contrib/btree_gist (Janko Richter)
-      
-     
-
-     
-      
-       Improve /contrib/pgbench (Tomoaki Sato, Tatsuo)
-      
-      
-       There is now a facility for testing with SQL command scripts given
-       by the user, instead of only a hard-wired command sequence.
-      
-     
-
-     
-      
-       Improve /contrib/pgcrypto (Marko Kreen)
-      
-
-      
-
-       
-        
-         Implementation of OpenPGP symmetric-key and public-key encryption
-        
-        
-         Both RSA and Elgamal public-key algorithms are supported.
-        
-       
-
-       
-        
-         Stand alone build: include SHA256/384/512 hashes, Fortuna PRNG
-        
-       
-
-       
-        
-         OpenSSL build: support 3DES, use internal AES with OpenSSL < 0.9.7
-        
-       
-
-       
-        
-         Take build parameters (OpenSSL, zlib) from configure result
-        
-        
-         There is no need to edit the Makefile anymore.
-        
-       
-
-       
-        
-         Remove support for libmhash and libmcrypt
-        
-       
-
-      
-     
-
-    
-   
-
-  
-
-  Release 8.0.21
-
-  
-  Release date
-  2009-03-16
-  
-
-  
-   This release contains a variety of fixes from 8.0.20.
-   For information about new features in the 8.0 major release, see
-   .
-  
-
-  
-   Migration to Version 8.0.21
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Prevent error recursion crashes when encoding conversion fails (Tom)
-     
-
-     
-      This change extends fixes made in the last two minor releases for
-      related failure scenarios.  The previous fixes were narrowly tailored
-      for the original problem reports, but we have now recognized that
-      any error thrown by an encoding conversion function could
-      potentially lead to infinite recursion while trying to report the
-      error.  The solution therefore is to disable translation and encoding
-      conversion and report the plain-ASCII form of any error message,
-      if we find we have gotten into a recursive error reporting situation.
-      (CVE-2009-0922)
-     
-    
-
-    
-     
-      Disallow CREATE CONVERSION with the wrong encodings
-      for the specified conversion function (Heikki)
-     
-
-     
-      This prevents one possible scenario for encoding conversion failure.
-      The previous change is a backstop to guard against other kinds of
-      failures in the same area.
-     
-    
-
-    
-     
-      Fix core dump when to_char() is given format codes that
-      are inappropriate for the type of the data argument (Tom)
-     
-    
-
-    
-     
-      Add MUST (Mauritius Island Summer Time) to the default list
-      of known timezone abbreviations (Xavier Bugaud)
-     
-    
-
-   
-
-  
-
-  Release 8.0.20
-
-  
-  Release date
-  2009-02-02
-  
-
-  
-   This release contains a variety of fixes from 8.0.19.
-   For information about new features in the 8.0 major release, see
-   .
-  
-
-  
-   Migration to Version 8.0.20
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Improve handling of URLs in headline() function (Teodor)
-     
-    
-
-    
-     
-      Improve handling of overlength headlines in headline()
-      function (Teodor)
-     
-    
-
-    
-     
-      Prevent possible Assert failure or misconversion if an encoding
-      conversion is created with the wrong conversion function for the
-      specified pair of encodings (Tom, Heikki)
-     
-    
-
-    
-     
-      Avoid unnecessary locking of small tables in VACUUM
-      (Heikki)
-     
-    
-
-    
-     
-      Fix uninitialized variables in contrib/tsearch2's
-      get_covers() function (Teodor)
-     
-    
-
-    
-     
-      Make all documentation reference pgsql-bugs and/or
-      pgsql-hackers as appropriate, instead of the
-      now-decommissioned pgsql-ports and pgsql-patches
-      mailing lists (Tom)
-     
-    
-
-    
-     
-      Update time zone data files to tzdata release 2009a (for
-      Kathmandu and historical DST corrections in Switzerland, Cuba)
-     
-    
-
-   
-
-  
-
-  Release 8.0.19
-
-  
-  Release date
-  2008-11-03
-  
-
-  
-   This release contains a variety of fixes from 8.0.18.
-   For information about new features in the 8.0 major release, see
-   .
-  
-
-  
-   Migration to Version 8.0.19
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Fix backend crash when the client encoding cannot represent a localized
-      error message (Tom)
-     
-
-     
-      We have addressed similar issues before, but it would still fail if
-      the character has no equivalent message itself couldn't
-      be converted.  The fix is to disable localization and send the plain
-      ASCII error message when we detect such a situation.
-     
-    
-
-    
-     
-      Fix possible crash when deeply nested functions are invoked from
-      a trigger (Tom)
-     
-    
-
-    
-     
-      Ensure an error is reported when a newly-defined PL/pgSQL trigger
-      function is invoked as a normal function (Tom)
-     
-    
-
-    
-     
-      Fix incorrect tsearch2 headline generation when single query
-      item matches first word of text (Sushant Sinha)
-     
-    
-
-    
-     
-      Fix improper display of fractional seconds in interval values when
-      using a non-ISO datestyle in an 
-      build (Ron Mayer)
-     
-    
-
-    
-     
-      Ensure SPI_getvalue and SPI_getbinval
-      behave correctly when the passed tuple and tuple descriptor have
-      different numbers of columns (Tom)
-     
-
-     
-      This situation is normal when a table has had columns added or removed,
-      but these two functions didn't handle it properly.
-      The only likely consequence is an incorrect error indication.
-     
-    
-
-    
-     
-      Fix ecpg's parsing of CREATE USER (Michael)
-     
-    
-
-    
-     
-      Fix recent breakage of pg_ctl restart (Tom)
-     
-    
-
-    
-     
-      Update time zone data files to tzdata release 2008i (for
-      DST law changes in Argentina, Brazil, Mauritius, Syria)
-     
-    
-
-   
-
-  
-
-  Release 8.0.18
-
-  
-  Release date
-  2008-09-22
-  
-
-  
-   This release contains a variety of fixes from 8.0.17.
-   For information about new features in the 8.0 major release, see
-   .
-  
-
-  
-   Migration to Version 8.0.18
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Widen local lock counters from 32 to 64 bits (Tom)
-     
-
-     
-      This responds to reports that the counters could overflow in
-      sufficiently long transactions, leading to unexpected lock is
-      already held errors.
-     
-    
-
-    
-     
-      Add checks in executor startup to ensure that the tuples produced by an
-      INSERT or UPDATE will match the target table's
-      current rowtype (Tom)
-     
-
-     
-      ALTER COLUMN TYPE, followed by re-use of a previously
-      cached plan, could produce this type of situation.  The check protects
-      against data corruption and/or crashes that could ensue.
-     
-    
-
-    
-     
-      Fix datetime input functions to correctly detect integer overflow when
-      running on a 64-bit platform (Tom)
-     
-    
-
-    
-     
-      Improve performance of writing very long log messages to syslog (Tom)
-     
-    
-
-    
-     
-      Fix bug in backwards scanning of a cursor on a SELECT DISTINCT
-      ON query (Tom)
-     
-    
-
-    
-     
-      Fix planner to estimate that GROUP BY expressions yielding
-      boolean results always result in two groups, regardless of the
-      expressions' contents (Tom)
-     
-
-     
-      This is very substantially more accurate than the regular GROUP
-      BY estimate for certain boolean tests like col
-      IS NULL.
-     
-    
-
-    
-     
-      Fix PL/Tcl to behave correctly with Tcl 8.5, and to be more careful
-      about the encoding of data sent to or from Tcl (Tom)
-     
-    
-
-    
-     
-      Fix PL/Python to work with Python 2.5
-     
-
-     
-      This is a back-port of fixes made during the 8.2 development cycle.
-     
-    
-
-    
-     
-      Improve pg_dump and pg_restore's
-      error reporting after failure to send a SQL command (Tom)
-     
-    
-
-    
-     
-      Fix pg_ctl to properly preserve postmaster
-      command-line arguments across a restart (Bruce)
-     
-    
-
-    
-     
-      Update time zone data files to tzdata release 2008f (for
-      DST law changes in Argentina, Bahamas, Brazil, Mauritius, Morocco,
-      Pakistan, Palestine, and Paraguay)
-     
-    
-
-   
-
-  
-
-  Release 8.0.17
-
-  
-  Release date
-  2008-06-12
-  
-
-  
-   This release contains one serious bug fix over 8.0.16.
-   For information about new features in the 8.0 major release, see
-   .
-  
-
-  
-   Migration to Version 8.0.17
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Make pg_get_ruledef() parenthesize negative constants (Tom)
-     
-
-     
-      Before this fix, a negative constant in a view or rule might be dumped
-      as, say, -42::integer, which is subtly incorrect: it should
-      be (-42)::integer due to operator precedence rules.
-      Usually this would make little difference, but it could interact with
-      another recent patch to cause
-      PostgreSQL to reject what had been a valid
-      SELECT DISTINCT view query.  Since this could result in
-      pg_dump output failing to reload, it is being treated
-      as a high-priority fix.  The only released versions in which dump
-      output is actually incorrect are 8.3.1 and 8.2.7.
-     
-    
-
-   
-
-  
-
-  Release 8.0.16
-
-  
-  Release date
-  never released
-  
-
-  
-   This release contains a variety of fixes from 8.0.15.
-   For information about new features in the 8.0 major release, see
-   .
-  
-
-  
-   Migration to Version 8.0.16
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Fix 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)
-     
-
-     
-      Previous versions neglected to check this requirement at all.
-     
-    
-
-    
-     
-      Fix possible CREATE TABLE failure when inheriting the
-      same constraint from multiple parent relations that
-      inherited that constraint from a common ancestor (Tom)
-     
-    
-
-    
-     
-      Fix conversions between ISO-8859-5 and other encodings to handle
-      Cyrillic Yo characters (e and E with
-      two dots) (Sergey Burladyan)
-     
-    
-
-    
-     
-      Fix a few datatype input functions
-      that were allowing unused bytes in their results to contain
-      uninitialized, unpredictable values (Tom)
-     
-
-     
-      This could lead to failures in which two apparently identical literal
-      values were not seen as equal, resulting in the parser complaining
-      about unmatched ORDER BY and DISTINCT
-      expressions.
-     
-    
-
-    
-     
-      Fix a corner case in regular-expression substring matching
-      (substring(string from
-      pattern)) (Tom)
-     
-
-     
-      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
-      substring('foo' from 'foo(bar)?').
-      This should return NULL, since (bar) isn't matched, but
-      it was mistakenly returning the whole-pattern match instead (ie,
-      foo).
-     
-    
-
-    
-     
-      Update time zone data files to tzdata release 2008c (for
-      DST law changes in Morocco, Iraq, Choibalsan, Pakistan, Syria, Cuba,
-      Argentina/San_Luis, and Chile)
-     
-    
-
-    
-     
-      Fix incorrect result from ecpg's
-      PGTYPEStimestamp_sub() function (Michael)
-     
-    
-
-    
-     
-      Fix core dump in contrib/xml2's
-      xpath_table() function when the input query returns a
-      NULL value (Tom)
-     
-    
-
-    
-     
-      Fix contrib/xml2's makefile to not override
-      CFLAGS (Tom)
-     
-    
-
-    
-     
-      Fix DatumGetBool macro to not fail with gcc
-      4.3 (Tom)
-     
-
-     
-      This problem affects 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.
-     
-    
-
-    
-     
-      Fix longstanding LISTEN/NOTIFY
-      race condition (Tom)
-     
-
-     
-      In rare cases a session that had just executed a
-      LISTEN might not get a notification, even though
-      one would be expected because the concurrent transaction executing
-      NOTIFY was observed to commit later.
-     
-
-     
-      A side effect of the fix is that a transaction that has executed
-      a not-yet-committed LISTEN command will not see any
-      row in pg_listener for the 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.
-     
-    
-
-    
-     
-      Fix rare crash when an error occurs during a query using a hash index
-      (Heikki)
-     
-    
-
-    
-     
-      Fix input of datetime values for February 29 in years BC (Tom)
-     
-
-     
-      The former coding was mistaken about which years were leap years.
-     
-    
-
-    
-     
-      Fix unrecognized node type error in some variants of
-      ALTER OWNER (Tom)
-     
-    
-
-    
-     
-      Fix pg_ctl to correctly extract the postmaster's port
-      number from command-line options (Itagaki Takahiro, Tom)
-     
-
-     
-      Previously, pg_ctl start -w could try to contact the
-      postmaster on the wrong port, leading to bogus reports of startup
-      failure.
-     
-    
-
-    
-     
-      Use 
-      in recent gcc versions (Tom)
-     
-
-     
-      This is known to be necessary when building PostgreSQL
-      with gcc 4.3 or later.
-     
-    
-
-    
-     
-      Fix display of constant expressions in ORDER BY
-      and GROUP BY (Tom)
-     
-
-     
-      An explictly casted constant would be shown incorrectly.  This could
-      for example lead to corruption of a view definition during
-      dump and reload.
-     
-    
-
-    
-     
-      Fix libpq to handle NOTICE messages correctly
-      during COPY OUT (Tom)
-     
-
-     
-      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.
-     
-    
-
-   
-
-  
-
-  Release 8.0.15
-
-  
-  Release date
-  2008-01-07
-  
-
-  
-   This release contains a variety of fixes from 8.0.14,
-   including fixes for significant security issues.
-   For information about new features in the 8.0 major release, see
-   .
-  
-
-  
-   This is the last 8.0.X release for which the PostgreSQL
-   community will produce binary packages for Windows.
-   Windows users are encouraged to move to 8.2.X or later,
-   since there are Windows-specific fixes in 8.2.X that
-   are impractical to back-port.  8.0.X will continue to
-   be supported on other platforms.
-  
-
-  
-   Migration to Version 8.0.15
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Prevent functions in indexes from executing with the privileges of
-      the user running VACUUM, ANALYZE, etc (Tom)
-     
-
-     
-      Functions used in index expressions and partial-index
-      predicates are evaluated whenever a new table entry is made.  It has
-      long been understood that this poses a risk of trojan-horse code
-      execution if one modifies a table owned by an untrustworthy user.
-      (Note that triggers, defaults, check constraints, etc. pose the
-      same type of risk.)  But functions in indexes pose extra danger
-      because they will be executed by routine maintenance operations
-      such as VACUUM FULL, which are commonly performed
-      automatically under a superuser account.  For example, a nefarious user
-      can execute code with superuser privileges by setting up a
-      trojan-horse index definition and waiting for the next routine vacuum.
-      The fix arranges for standard maintenance operations
-      (including VACUUM, ANALYZE, REINDEX,
-      and CLUSTER) to execute as the table owner rather than
-      the calling user, using the same privilege-switching mechanism already
-      used for SECURITY DEFINER functions.  To prevent bypassing
-      this security measure, execution of SET SESSION
-      AUTHORIZATION and SET ROLE is now forbidden within a
-      SECURITY DEFINER context.  (CVE-2007-6600)
-     
-    
-
-    
-     
-      Repair assorted bugs in the regular-expression package (Tom, Will Drewry)
-     
-
-     
-      Suitably crafted regular-expression patterns could cause crashes,
-      infinite or near-infinite looping, and/or massive memory consumption,
-      all of which pose denial-of-service hazards for applications that
-      accept regex search patterns from untrustworthy sources.
-      (CVE-2007-4769, CVE-2007-4772, CVE-2007-6067)
-     
-    
-
-    
-     
-      Require non-superusers who use /contrib/dblink to use only
-      password authentication, as a security measure (Joe)
-     
-
-     
-      The fix that appeared for this in 8.0.14 was incomplete, as it plugged
-      the hole for only some dblink functions.  (CVE-2007-6601,
-      CVE-2007-3278)
-     
-    
-
-    
-     
-      Update time zone data files to tzdata release 2007k
-      (in particular, recent Argentina changes) (Tom)
-     
-    
-
-    
-     
-      Fix planner failure in some cases of WHERE false AND var IN
-      (SELECT ...) (Tom)
-     
-    
-
-    
-     
-      Preserve the tablespace of indexes that are
-      rebuilt by ALTER TABLE ... ALTER COLUMN TYPE (Tom)
-     
-    
-
-    
-     
-      Make archive recovery always start a new WAL timeline, rather than only
-      when a recovery stop time was used (Simon)
-     
-
-     
-      This avoids a corner-case risk of trying to overwrite an existing
-      archived copy of the last WAL segment, and seems simpler and cleaner
-      than the original definition.
-     
-    
-
-    
-     
-      Make VACUUM not use all of maintenance_work_mem
-      when the table is too small for it to be useful (Alvaro)
-     
-    
-
-    
-     
-      Fix potential crash in translate() when using a multibyte
-      database encoding (Tom)
-     
-    
-
-    
-     
-      Fix PL/Perl to cope when platform's Perl defines type bool
-      as int rather than char (Tom)
-     
-
-     
-      While this could theoretically happen anywhere, no standard build of
-      Perl did things this way ... until Mac OS X 10.5.
-     
-    
-
-    
-     
-      Fix PL/Python to not crash on long exception messages (Alvaro)
-     
-    
-
-    
-     
-      Fix pg_dump to correctly handle inheritance child tables
-      that have default expressions different from their parent's (Tom)
-     
-    
-
-    
-     
-      ecpg parser fixes (Michael)
-     
-    
-
-    
-     
-      Make contrib/tablefunc's crosstab() handle
-      NULL rowid as a category in its own right, rather than crashing (Joe)
-     
-    
-
-    
-     
-      Fix tsvector and tsquery output routines to
-      escape backslashes correctly (Teodor, Bruce)
-     
-    
-
-    
-     
-      Fix crash of to_tsvector() on huge input strings (Teodor)
-     
-    
-
-    
-     
-      Require a specific version of Autoconf to be used
-      when re-generating the configure script (Peter)
-     
-
-     
-      This affects developers and packagers only.  The change was made
-      to prevent accidental use of untested combinations of
-      Autoconf and PostgreSQL versions.
-      You can remove the version check if you really want to use a
-      different Autoconf version, but it's
-      your responsibility whether the result works or not.
-     
-    
-
-   
-
-  
-
-  Release 8.0.14
-
-  
-  Release date
-  2007-09-17
-  
-
-  
-   This release contains a variety of fixes from 8.0.13.
-   For information about new features in the 8.0 major release, see
-   .
-  
-
-  
-   Migration to Version 8.0.14
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Prevent index corruption when a transaction inserts rows and
-      then aborts close to the end of a concurrent VACUUM
-      on the same table (Tom)
-     
-    
-
-    
-     
-      Make CREATE DOMAIN ... DEFAULT NULL work properly (Tom)
-     
-    
-
-    
-     
-      Fix excessive logging of SSL error messages (Tom)
-     
-    
-
-    
-     
-      Fix logging so that log messages are never interleaved when using
-      the syslogger process (Andrew)
-     
-    
-
-    
-     
-      Fix crash when log_min_error_statement logging runs out
-      of memory (Tom)
-     
-    
-
-    
-     
-      Fix incorrect handling of some foreign-key corner cases (Tom)
-     
-    
-
-    
-     
-      Prevent CLUSTER from failing
-      due to attempting to process temporary tables of other sessions (Alvaro)
-     
-    
-
-    
-     
-      Update the time zone database rules, particularly New Zealand's upcoming changes (Tom)
-     
-    
-
-    
-     
-      Windows socket improvements (Magnus)
-     
-    
-
-    
-     
-      Suppress timezone name (%Z) in log timestamps on Windows
-      because of possible encoding mismatches (Tom)
-     
-    
-
-    
-     
-      Require non-superusers who use /contrib/dblink to use only
-      password authentication, as a security measure (Joe)
-     
-    
-
-   
-
-  
-
-  Release 8.0.13
-
-  
-  Release date
-  2007-04-23
-  
-
-  
-   This release contains a variety of fixes from 8.0.12,
-   including a security fix.
-   For information about new features in the 8.0 major release, see
-   .
-  
-
-  
-   Migration to Version 8.0.13
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-    
-     Support explicit placement of the temporary-table schema within
-     search_path, and disable searching it for functions
-     and operators (Tom)
-    
-    
-     This is needed to allow a security-definer function to set a
-     truly secure value of search_path.  Without it,
-     an unprivileged SQL user can use temporary objects to execute code
-     with the privileges of the security-definer function (CVE-2007-2138).
-     See CREATE FUNCTION for more information.
-    
-    
-
-    
-    
-     /contrib/tsearch2 crash fixes (Teodor)
-    
-    
-
-    
-    
-     Fix potential-data-corruption bug in how VACUUM FULL handles
-     UPDATE chains (Tom, Pavan Deolasee)
-    
-    
-
-    
-    
-     Fix PANIC during enlargement of a hash index (bug introduced in 8.0.10)
-     (Tom)
-    
-    
-
-    
-    
-     Fix POSIX-style timezone specs to follow new USA DST rules (Tom)
-    
-    
-
-   
-
-  
-
-  Release 8.0.12
-
-  
-  Release date
-  2007-02-07
-  
-
-  
-   This release contains one fix from 8.0.11.
-   For information about new features in the 8.0 major release, see
-   .
-  
-
-  
-   Migration to Version 8.0.12
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-    
-     Remove overly-restrictive check for type length in constraints and
-     functional indexes(Tom)
-    
-    
-
-   
-
-  
-
-  Release 8.0.11
-
-  
-  Release date
-  2007-02-05
-  
-
-  
-   This release contains a variety of fixes from 8.0.10, including
-   a security fix.
-   For information about new features in the 8.0 major release, see
-   .
-  
-
-  
-   Migration to Version 8.0.11
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-    
-     Remove security vulnerabilities that allowed connected users
-     to read backend memory (Tom)
-    
-    
-     The vulnerabilities involve suppressing the normal check that a SQL
-     function returns the data type it's declared to, and changing the
-     data type of a table column (CVE-2007-0555, CVE-2007-0556).  These
-     errors 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.
-    
-    
-
-    
-    
-     Fix rare bug wherein btree index page splits could fail
-     due to choosing an infeasible split point (Heikki Linnakangas)
-    
-    
-
-    
-    
-     Fix for rare Assert() crash triggered by UNION (Tom)
-    
-    
-
-    
-    
-     Tighten security of multi-byte character processing for UTF8 sequences
-     over three bytes long (Tom)
-    
-    
-
-   
-
-  
-
-  Release 8.0.10
-
-  
-  Release date
-  2007-01-08
-  
-
-  
-   This release contains a variety of fixes from 8.0.9.
-   For information about new features in the 8.0 major release, see
-   .
-  
-
-  
-   Migration to Version 8.0.10
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Improve handling of getaddrinfo() on AIX (Tom)
-     
-
-     
-      This fixes a problem with starting the statistics collector,
-      among other things.
-     
-    
-
-     
-      
-       Fix failed to re-find parent key errors in
-       VACUUM (Tom)
-      
-     
-
-     
-      
-       Fix race condition for truncation of a large relation across a
-       gigabyte boundary by VACUUM (Tom)
-      
-     
-
-     
-      
-       Fix bugs affecting multi-gigabyte hash indexes (Tom)
-      
-     
-
-    
-     
-      Fix possible deadlock in Windows signal handling (Teodor)
-     
-    
-
-    
-     
-      Fix error when constructing an ARRAY[] made up of multiple
-      empty elements (Tom)
-     
-    
-
-    
-     
-      Fix ecpg memory leak during connection (Michael)
-     
-    
-
-    
-     
-      to_number() and to_char(numeric)
-      are now STABLE, not IMMUTABLE, for
-      new initdb installs (Tom)
-     
-
-     
-      This is because lc_numeric can potentially
-      change the output of these functions.
-     
-    
-
-    
-     
-      Improve index usage of regular expressions that use parentheses (Tom)
-     
-
-     
-      This improves psql \d performance also.
-     
-    
-
-    
-     
-      Update timezone database
-     
-
-     
-      This affects Australian and Canadian daylight-savings rules in
-      particular.
-     
-    
-
-   
-
-  
-
-  Release 8.0.9
-
-  
-  Release date
-  2006-10-16
-  
-
-  
-   This release contains a variety of fixes from 8.0.8.
-   For information about new features in the 8.0 major release, see
-   .
-  
-
-  
-   Migration to Version 8.0.9
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-
-Fix crash when referencing NEW row
-values in rule WHERE expressions (Tom)
-Fix core dump when an untyped literal is taken as
-ANYARRAY
-Fix mishandling of AFTER triggers when query contains a SQL
-function returning multiple rows (Tom)
-Fix ALTER TABLE ... TYPE to recheck
-NOT NULL for USING clause (Tom)
-Fix string_to_array() to handle overlapping
- matches for the separator string
-For example, string_to_array('123xx456xxx789', 'xx').
-
-Fix corner cases in pattern matching for
psql's \d commands
-Fix index-corrupting bugs in /contrib/ltree
- (Teodor)
-Numerous robustness fixes in ecpg (Joachim
-Wieland)
-Fix backslash escaping in /contrib/dbmirror
-Fix instability of statistics collection on Win32 (Tom, Andrew)
-Fixes for AIX and
-Intel compilers (Tom)
-
-
-  
-
-  Release 8.0.8
-
-  
-  Release date
-  2006-05-23
-  
-
-  
-   This release contains a variety of fixes from 8.0.7,
-   including patches for extremely serious security issues.
-   For information about new features in the 8.0 major release, see
-   .
-  
-
-  
-   Migration to Version 8.0.8
-
-   
-    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.
-   
-
-   
-    Full security against the SQL-injection attacks described in
-    CVE-2006-2313 and CVE-2006-2314 might require changes in application
-    code.  If you have applications that embed untrustworthy strings
-    into SQL commands, you should examine them as soon as possible to
-    ensure that they are using recommended escaping techniques.  In
-    most cases, applications should be using subroutines provided by
-    libraries or drivers (such as libpq's
-    PQescapeStringConn()) to perform string escaping,
-    rather than relying on ad hoc code to do it.
-   
-  
-
-  
-   Changes
-
-
-Change the server to reject invalidly-encoded multibyte
-characters in all cases (Tatsuo, Tom)
-While PostgreSQL has been moving in this direction for
-some time, the checks are now applied uniformly to all encodings and all
-textual input, and are now always errors not merely warnings.  This change
-defends against SQL-injection attacks of the type described in CVE-2006-2313.
-
-
-Reject unsafe uses of \' in string literals
-As a server-side defense against SQL-injection attacks of the type
-described in CVE-2006-2314, the server now only accepts '' and not
-\' as a representation of ASCII single quote in SQL string
-literals.  By default, \' is rejected only when
-client_encoding is set to a client-only encoding (SJIS, BIG5, GBK,
-GB18030, or UHC), which is the scenario in which SQL injection is possible.
-A new configuration parameter backslash_quote is available to
-adjust this behavior when needed.  Note that full security against
-CVE-2006-2314 might require client-side changes; the purpose of
-backslash_quote is in part to make it obvious that insecure
-clients are insecure.
-
-
-Modify libpq's string-escaping routines to be
-aware of encoding considerations and
-standard_conforming_strings
-This fixes libpq-using applications for the security
-issues described in CVE-2006-2313 and CVE-2006-2314, and also future-proofs
-them against the planned changeover to SQL-standard string literal syntax.
-Applications that use multiple PostgreSQL connections
-concurrently should migrate to PQescapeStringConn() and
-PQescapeByteaConn() to ensure that escaping is done correctly
-for the settings in use in each database connection.  Applications that
-do string escaping by hand should be modified to rely on library
-routines instead.
-
-
-Fix some incorrect encoding conversion functions
-win1251_to_iso, alt_to_iso,
-euc_tw_to_big5, euc_tw_to_mic,
-mic_to_euc_tw were all broken to varying
-extents.
-
-
-Clean up stray remaining uses of \' in strings
-(Bruce, Jan)
-
-Fix bug that sometimes caused OR'd index scans to
-miss rows they should have returned
-
-Fix WAL replay for case where a btree index has been
-truncated
-
-Fix SIMILAR TO for patterns involving
-| (Tom)
-
-Fix SELECT INTO and CREATE TABLE AS to
-create tables in the default tablespace, not the base directory (Kris
-Jurka)
-
-Fix server to use custom DH SSL parameters correctly (Michael
-Fuhr)
-
-Fix for Bonjour on Intel Macs (Ashley Clark)
-
-Fix various minor memory leaks
-
-Fix problem with password prompting on some Win32 systems
-(Robert Kinberg)
-
-
-  
-
-  Release 8.0.7
-
-  
-  Release date
-  2006-02-14
-  
-
-  
-   This release contains a variety of fixes from 8.0.6.
-   For information about new features in the 8.0 major release, see
-   .
-  
-
-  
-   Migration to Version 8.0.7
-
-   
-    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.
-   
-  
-
-  
-   Changes
-
-
-
-Fix potential crash in SET
-SESSION AUTHORIZATION (CVE-2006-0553)
-An unprivileged user could crash the server process, resulting in
-momentary denial of service to other users, if the server has been compiled
-with Asserts enabled (which is not the default).
-Thanks to Akio Ishida for reporting this problem.
-
-
-Fix bug with row visibility logic in self-inserted
-rows (Tom)
-Under rare circumstances a row inserted by the current command
-could be seen as already valid, when it should not be.  Repairs bug
-created in 8.0.4, 7.4.9, and 7.3.11 releases.
-
-
-Fix race condition that could lead to file already
-exists errors during pg_clog and pg_subtrans file creation
-(Tom)
-
-Fix cases that could lead to crashes if a cache-invalidation
-message arrives at just the wrong time (Tom)
-
-Properly check DOMAIN constraints for
-UNKNOWN parameters in prepared statements
-(Neil)
-
-Ensure ALTER COLUMN TYPE will process
-FOREIGN KEY, UNIQUE, and PRIMARY KEY
-constraints in the proper order (Nakano Yoshihisa)
-
-Fixes to allow restoring dumps that have cross-schema
-references to custom operators or operator classes (Tom)
-
-Allow pg_restore to continue properly after a
-COPY failure; formerly it tried to treat the remaining
-COPY data as SQL commands (Stephen Frost)
-
-Fix pg_ctl unregister crash
-when the  data directory is not specified (Magnus)
-
-Fix ecpg crash on AMD64 and PPC
-(Neil)
-
-Recover properly if error occurs during argument passing
-in PL/python (Neil)
-
-Fix PL/perl's handling of locales on
-Win32 to match the backend (Andrew)
-
-Fix crash when log_min_messages is set to
-DEBUG3 or above in postgresql.conf on Win32
-(Bruce)
-
-Fix pgxs -L library path
-specification for Win32, Cygwin, OS X, AIX (Bruce)
-
-Check that SID is enabled while checking for Win32 admin
-privileges (Magnus)
-
-Properly reject out-of-range date inputs (Kris
-Jurka)
-
-Portability fix for testing presence of finite
-and isinf during configure (Tom)
-
-
-
-  
-
-  Release 8.0.6
-
-  
-  Release date
-  2006-01-09
-  
-
-  
-   This release contains a variety of fixes from 8.0.5.
-   For information about new features in the 8.0 major release, see
-   .
-  
-
-  
-   Migration to Version 8.0.6
-
-   
-    A dump/restore is not required for those running 8.0.X.  However,
-    if you are upgrading from a version earlier than 8.0.3, see the release
-    notes for 8.0.3.
-    Also, you might need to REINDEX indexes on textual
-    columns after updating, if you are affected by the locale or
-    plperl issues described below.
-   
-  
-
-  
-   Changes
-
-
-
-Fix Windows code so that postmaster will continue rather
-than exit if there is no more room in ShmemBackendArray (Magnus)
-The previous behavior could lead to a denial-of-service situation if too
-many connection requests arrive close together.  This applies
-only to the Windows port.
-
-Fix bug introduced in 8.0 that could allow ReadBuffer
-to return an already-used page as new, potentially causing loss of
-recently-committed data (Tom)
-
-Fix for protocol-level Describe messages issued
-outside a transaction or in a failed transaction (Tom)
-
-Fix character string comparison for locales that consider
-different character combinations as equal, such as Hungarian (Tom)
-This might require REINDEX to fix existing indexes on
-textual columns.
-
-Set locale environment variables during postmaster startup
-to ensure that plperl won't change the locale later
-This fixes a problem that occurred if the postmaster was
-started with environment variables specifying a different locale than what
-initdb had been told.  Under these conditions, any use of
-plperl was likely to lead to corrupt indexes.  You might need
-REINDEX to fix existing indexes on
-textual columns if this has happened to you.
-
-Allow more flexible relocation of installation
-directories (Tom)
-Previous releases supported relocation only if all installation
-directory paths were the same except for the last component.
-
-Fix longstanding bug in strpos() and regular expression
-handling in certain rarely used Asian multi-byte character sets (Tatsuo)
-
-
-Various fixes for functions returning RECORDs
-(Tom) 
-
-Fix bug in /contrib/pgcrypto gen_salt,
-which caused it not to use all available salt space for MD5 and
-XDES algorithms (Marko Kreen, Solar Designer)
-Salts for Blowfish and standard DES are unaffected.
-
-Fix /contrib/dblink to throw an error,
-rather than crashing, when the number of columns specified is different from
-what's actually returned by the query (Joe)
-
-
-
-  
-
-  Release 8.0.5
-
-  
-  Release date
-  2005-12-12
-  
-
-  
-   This release contains a variety of fixes from 8.0.4.
-   For information about new features in the 8.0 major release, see
-   .
-  
-
-  
-   Migration to Version 8.0.5
-
-   
-    A dump/restore is not required for those running 8.0.X.  However,
-    if you are upgrading from a version earlier than 8.0.3, see the release
-    notes for 8.0.3.
-   
-  
-
-  
-   Changes
-
-
-
-Fix race condition in transaction log management
-There was a narrow window in which an I/O operation could be initiated
-for the wrong page, leading to an Assert failure or data
-corruption.
-
-
-Fix bgwriter problems after recovering from errors
-(Tom)
-
-The background writer was found to leak buffer pins after write errors.
-While not fatal in itself, this might lead to mysterious blockages of
-later VACUUM commands.
-
-
-
-Prevent failure if client sends Bind protocol message
-when current transaction is already aborted
-
-/contrib/ltree fixes (Teodor)
-
-AIX and HPUX compile fixes (Tom)
-
-Retry file reads and writes after Windows
-NO_SYSTEM_RESOURCES error (Qingqing Zhou)
-
-Fix intermittent failure when log_line_prefix
-includes %i
-
-Fix psql performance issue with long scripts
-on Windows (Merlin Moncure)
-
-Fix missing updates of pg_group flat
-file
-
-Fix longstanding planning error for outer joins
-This bug sometimes caused a bogus error RIGHT JOIN is
-only supported with merge-joinable join conditions.
-
-Postpone timezone initialization until after
-postmaster.pid is created
-This avoids confusing startup scripts that expect the pid file to appear
-quickly.
-
-Prevent core dump in pg_autovacuum when a
-table has been dropped
-
-Fix problems with whole-row references (foo.*)
-to subquery results
-
-
-  
-
-  Release 8.0.4
-
-  
-  Release date
-  2005-10-04
-  
-
-  
-   This release contains a variety of fixes from 8.0.3.
-   For information about new features in the 8.0 major release, see
-   .
-  
-
-  
-   Migration to Version 8.0.4
-
-   
-    A dump/restore is not required for those running 8.0.X.  However,
-    if you are upgrading from a version earlier than 8.0.3, see the release
-    notes for 8.0.3.
-   
-  
-
-  
-   Changes
-
-
-Fix error that allowed VACUUM to remove
-ctid chains too soon, and add more checking in code that follows
-ctid links
-This fixes a long-standing problem that could cause crashes in very rare
-circumstances.
-Fix CHAR() to properly pad spaces to the specified
-length when using a multiple-byte character set (Yoshiyuki Asaba)
-In prior releases, the padding of CHAR() was incorrect
-because it only padded to the specified number of bytes without
-considering how many characters were stored.
-Force a checkpoint before committing CREATE
-DATABASE
-This should fix recent reports of index is not a btree
-failures when a crash occurs shortly after CREATE
-DATABASE.
-Fix the sense of the test for read-only transaction
-in COPY
-The code formerly prohibited COPY TO, where it should
-prohibit COPY FROM.
-
-Handle consecutive embedded newlines in COPY
-CSV-mode input
-Fix date_trunc(week) for dates near year
-end
-Fix planning problem with outer-join ON clauses that reference
-only the inner-side relation
-Further fixes for x FULL JOIN y ON true corner
-cases
-Fix overenthusiastic optimization of x IN (SELECT
-DISTINCT ...) and related cases
-Fix mis-planning of queries with small LIMIT
-values due to poorly thought out fuzzy cost
-comparison
-Make array_in and array_recv more
-paranoid about validating their OID parameter
-Fix missing rows in queries like UPDATE a=... WHERE
-a... with GiST index on column a
-Improve robustness of datetime parsing
-Improve checking for partially-written WAL
-pages
-Improve robustness of signal handling when SSL is
-enabled
-Improve MIPS and M68K spinlock code
-Don't try to open more than max_files_per_process
-files during postmaster startup
-Various memory leakage fixes
-Various portability improvements
-Update timezone data files
-Improve handling of DLL load failures on Windows
-Improve random-number generation on Windows
-Make psql -f filename return a nonzero exit code
-when opening the file fails
-Change pg_dump to handle inherited check
-constraints more reliably
-Fix password prompting in pg_restore on
-Windows
-Fix PL/PgSQL to handle var := var correctly when
-the variable is of pass-by-reference type
-Fix PL/Perl %_SHARED so it's actually
-shared
-Fix contrib/pg_autovacuum to allow sleep
-intervals over 2000 sec
-Update contrib/tsearch2 to use current Snowball
-code
-
-
-  
-
-  Release 8.0.3
-
-  
-  Release date
-  2005-05-09
-  
-
-  
-   This release contains a variety of fixes from 8.0.2, including several
-   security-related issues.
-   For information about new features in the 8.0 major release, see
-   .
-  
-
-  
-   Migration to Version 8.0.3
-
-   
-    A dump/restore is not required for those running 8.0.X.  However,
-    it is one possible way of handling two significant security problems
-    that have been found in the initial contents of 8.0.X system
-    catalogs.  A dump/initdb/reload sequence using 8.0.3's initdb will
-    automatically correct these problems.
-   
-
-   
-    The larger 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.)
-   
-
-   
-    The lesser problem is that the contrib/tsearch2 module
-    creates several functions that are improperly declared to return
-    internal when they do not accept internal arguments.
-    This breaks type safety for all functions using internal
-    arguments.
-   
-
-   
-    It is strongly recommended that all installations repair these errors,
-    either by initdb or by following the manual repair procedure given
-    below.  The errors at least allow unprivileged database users to crash
-    their server process, and might allow unprivileged users to gain the
-    privileges of a database superuser.
-   
-
-   
-    If you wish not to do an initdb, perform the same manual repair
-    procedures shown in the 7.4.8 release
-    notes.
-   
-  
-
-  
-   Changes
-
-
-Change encoding function signature to prevent
-misuse
-Change contrib/tsearch2 to avoid unsafe use of
-INTERNAL function results
-Guard against incorrect second parameter to
-record_out
-Repair ancient race condition that allowed a transaction to be
-seen as committed for some purposes (eg SELECT FOR UPDATE) slightly sooner
-than for other purposes
-This is an extremely serious bug since it could lead to apparent
-data inconsistencies being briefly visible to applications.
-Repair race condition between relation extension and
-VACUUM
-This could theoretically have caused loss of a page's worth of
-freshly-inserted data, although the scenario seems of very low probability.
-There are no known cases of it having caused more than an Assert failure.
-
-Fix comparisons of TIME WITH TIME ZONE values
-
-The comparison code was wrong in the case where the
---enable-integer-datetimes configuration switch had been used.
-NOTE: if you have an index on a TIME WITH TIME ZONE column,
-it will need to be REINDEXed after installing this update, because
-the fix corrects the sort order of column values.
-
-Fix EXTRACT(EPOCH) for
-TIME WITH TIME ZONE values
-Fix mis-display of negative fractional seconds in
-INTERVAL values
-
-This error only occurred when the
---enable-integer-datetimes configuration switch had been used.
-
-Fix pg_dump to dump trigger names containing %
-correctly (Neil)
-Still more 64-bit fixes for
-contrib/intagg
-Prevent incorrect optimization of functions returning
-RECORD
-Prevent crash on COALESCE(NULL,NULL)
-Fix Borland makefile for libpq
-Fix contrib/btree_gist for timetz type
-(Teodor)
-Make pg_ctl check the PID found in
-postmaster.pid to see if it is still a live
-process
-Fix pg_dump/pg_restore problems caused
-by addition of dump timestamps
-Fix interaction between materializing holdable cursors and
-firing deferred triggers during transaction commit
-Fix memory leak in SQL functions returning pass-by-reference
-data types
-
-
-  
-
-  Release 8.0.2
-
-  
-  Release date
-  2005-04-07
-  
-
-  
-   This release contains a variety of fixes from 8.0.1.
-   For information about new features in the 8.0 major release, see
-   .
-  
-
-  
-   Migration to Version 8.0.2
-
-   
-    A dump/restore is not required for those running 8.0.*.
-    This release updates the major version number of the
-    PostgreSQL libraries, so it might be
-    necessary to re-link some user applications if they cannot
-    find the properly-numbered shared library.
-   
-  
-
-  
-   Changes
-
-
-Increment the major version number of all interface
-libraries (Bruce)
-
-This should have been done in 8.0.0.  It is required so 7.4.X versions
-of PostgreSQL client applications, like psql,
-can be used on the same machine as 8.0.X applications.  This might require
-re-linking user applications that use these libraries.
-
-Add Windows-only wal_sync_method setting of
-
-
-This setting causes PostgreSQL to write through
-any disk-drive write cache when writing to WAL.
-This behavior was formerly called 
-renamed because it acts quite differently from 
-platforms.
-
-
-Enable the wal_sync_method setting of
-
- platform (Magnus, Bruce)
-
-Because the default is no longer 
-data loss is possible during a power failure if the disk drive has
-write caching enabled. To turn off the write cache on Windows,
-from the Device Manager, choose the drive properties,
-then Policies.
-
-
-New cache management algorithm 2Q replaces
-ARC (Tom)
-
-This was done to avoid a pending US patent on ARC.  The
-2Q code might be a few percentage points slower than
-ARC for some work loads.  A better cache management algorithm
-will appear in 8.1.
-
-Planner adjustments to improve behavior on freshly-created
-tables (Tom)
-Allow plpgsql to assign to an element of an array that is
-initially NULL (Tom)
-
-Formerly the array would remain NULL, but now it becomes a
-single-element array.  The main SQL engine was changed to handle
-UPDATE of a null array value this way in 8.0, but the similar
-case in plpgsql was overlooked.
-
-
-Convert \r\n and \r to \n
-in plpython function bodies (Michael Fuhr)
-
- This prevents syntax errors when plpython code is written on a Windows or
- Mac client.
-
-
-Allow SPI cursors to handle utility commands that return rows,
-such as EXPLAIN (Tom)
-Fix CLUSTER failure after ALTER TABLE
-SET WITHOUT OIDS (Tom)
-Reduce memory usage of ALTER TABLE ADD COLUMN
-(Neil)
-Fix ALTER LANGUAGE RENAME (Tom)
-Document the Windows-only register and
-unregister options of pg_ctl (Magnus)
-Ensure operations done during backend shutdown are counted by
-statistics collector
-
-This is expected to resolve reports of pg_autovacuum
-not vacuuming the system catalogs often enough — it was not being
-told about catalog deletions caused by temporary table removal during
-backend exit.
-
-Change the Windows default for configuration parameter
-log_destination to 
-
-By default, a server running on Windows will now send log output to the
-Windows event logger rather than standard error.
-
-Make Kerberos authentication work on Windows (Magnus)
-Allow ALTER DATABASE RENAME by superusers
-who aren't flagged as having CREATEDB privilege (Tom)
-Modify WAL log entries for CREATE and
-DROP DATABASE to not specify absolute paths (Tom)
-This allows point-in-time recovery on a different machine with possibly
-different database location.  Note that CREATE TABLESPACE still
-poses a hazard in such situations.
-
-Fix crash from a backend exiting with an open transaction
-that created a table and opened a cursor on it (Tom)
-Fix array_map() so it can call PL functions
-(Tom)
-Several contrib/tsearch2 and
-contrib/btree_gist fixes (Teodor)
-
-Fix crash of some contrib/pgcrypto
-functions on some platforms (Marko Kreen)
-Fix contrib/intagg for 64-bit platforms
-(Tom)
-Fix ecpg bugs in parsing of CREATE statement
-(Michael)
-Work around gcc bug on powerpc and amd64 causing problems in
-ecpg (Christof Petig)
-Do not use locale-aware versions of upper(),
-lower(), and initcap() when the locale is
-C (Bruce)
-
- This allows these functions to work on platforms that generate errors
- for non-7-bit data when the locale is C.
-
-Fix quote_ident() to quote names that match keywords (Tom)
-Fix to_date() to behave reasonably when
-CC and YY fields are both used (Karel)
-Prevent to_char(interval) from failing
-when given a zero-month interval (Tom)
-Fix wrong week returned by date_trunc('week')
-(Bruce)
-
-date_trunc('week')
-returned the wrong year for the first few days of January in some years.
-
-Use the correct default mask length for class D
-addresses in INET data types (Tom)
-
-
-  
-
-  Release 8.0.1
-
-  
-  Release date
-  2005-01-31
-  
-
-  
-   This release contains a variety of fixes from 8.0.0, including several
-   security-related issues.
-   For information about new features in the 8.0 major release, see
-   .
-  
-
-  
-   Migration to Version 8.0.1
-
-   
-    A dump/restore is not required for those running 8.0.0.
-   
-  
-
-  
-   Changes
-
-
-Disallow LOAD to non-superusers
-
-On platforms that will automatically execute initialization functions of a
-shared library (this includes at least Windows and ELF-based Unixen),
-LOAD can be used to make the server execute arbitrary code.
-Thanks to NGS Software for reporting this.
-Check that creator of an aggregate function has the right to
-execute the specified transition functions
-
-This oversight made it possible to bypass denial of EXECUTE
-permission on a function.
-Fix security and 64-bit issues in
-contrib/intagg
-Add needed STRICT marking to some contrib functions (Kris
-Jurka)
-Avoid buffer overrun when plpgsql cursor declaration has too
-many parameters (Neil)
-Make ALTER TABLE ADD COLUMN enforce domain
-constraints in all cases
-Fix planning error for FULL and RIGHT outer joins
-
-The result of the join was mistakenly supposed to be sorted the same as the
-left input.  This could not only deliver mis-sorted output to the user, but
-in case of nested merge joins could give outright wrong answers.
-
-Improve planning of grouped aggregate queries
-ROLLBACK TO savepoint
-closes cursors created since the savepoint
-Fix inadequate backend stack size on Windows
-Avoid SHGetSpecialFolderPath() on Windows
-(Magnus)
-Fix some problems in running pg_autovacuum as a Windows
-service (Dave Page)
-Multiple minor bug fixes in
-pg_dump/pg_restore
-Fix ecpg segfault with named structs used in
-typedefs (Michael)
-
-
-  
-
-  Release 8.0
-
-  
-   Release date
-   2005-01-19
-  
-
-  
-   Overview
-
-   
-    Major changes in this release:
-   
-
-   
-    
-     
-      Microsoft Windows Native Server
-     
-
-     
-      
-       This is the first PostgreSQL release
-       to run natively on Microsoft Windows as
-       a server. It can run as a Windows service. This
-       release supports NT-based Windows releases like
-       Windows 2000 SP4, Windows XP, and
-       Windows 2003. Older releases like
-       Windows 95, Windows 98, and
-       Windows ME are not supported because these operating
-       systems do not have the infrastructure to support
-       PostgreSQL. A separate installer
-       project has been created to ease installation on
-       Windows — see 
-       url="http://www.postgresql.org/ftp/win32/">.
-      
-
-      
-       Although tested throughout our release cycle, the Windows port
-       does not have the benefit of years of use in production
-       environments that PostgreSQL has on
-       Unix platforms.  Therefore it should be treated with the same
-       level of caution as you would a new product.
-      
-
-      
-       Previous releases required the Unix emulation toolkit
-       Cygwin in order to run the server on Windows
-       operating systems.  PostgreSQL has
-       supported native clients on Windows for many years.
-      
-     
-    
-
-    
-     
-      Savepoints
-     
-
-     
-      
-       Savepoints allow specific parts of a transaction to be aborted
-       without affecting the remainder of the transaction. Prior
-       releases had no such capability; there was no way to recover
-       from a statement failure within a transaction except by
-       aborting the whole transaction. This feature is valuable for
-       application writers who require error recovery within a
-       complex transaction.
-      
-     
-    
-
-    
-     
-      Point-In-Time Recovery
-     
-
-     
-      
-       In previous releases there was no way to recover from disk
-       drive failure except to restore from a previous backup or use
-       a standby replication server.  Point-in-time recovery allows
-       continuous backup of the server.  You can recover either to
-       the point of failure or to some transaction in the past.
-      
-     
-    
-
-    
-     
-      Tablespaces
-     
-
-     
-      
-       Tablespaces allow administrators to select different file systems
-       for storage of individual tables, indexes, and databases.
-       This improves performance and control over disk space
-       usage. Prior releases used initlocation and
-       manual symlink management for such tasks.
-      
-     
-    
-
-    
-     
-      Improved Buffer Management, CHECKPOINT,
-      VACUUM
-     
-
-     
-      
-       This release has a more intelligent buffer replacement strategy,
-       which will make better use of available shared buffers and
-       improve performance. The performance impact of vacuum and
-       checkpoints is also lessened.
-      
-     
-    
-
-    
-     
-      Change Column Types
-     
-
-     
-      
-       A column's data type can now be changed with ALTER
-       TABLE.
-      
-     
-    
-
-    
-     
-      New Perl Server-Side Language
-     
-
-     
-      
-       A new version of the plperl server-side language now
-       supports a persistent shared storage area, triggers, returning records
-       and arrays of records, and SPI calls to access the database.
-      
-     
-    
-
-    
-     
-       Comma-separated-value (CSV) support in COPY
-     
-
-     
-      
-       COPY can now read and write
-       comma-separated-value files. It has the flexibility to
-       interpret nonstandard quoting and separation characters too.
-      
-     
-    
-
-   
-  
-
-  
-   Migration to Version 8.0
-
-   
-    A dump/restore using pg_dump is
-    required for those wishing to migrate data from any previous
-    release.
-   
-
-   
-    Observe the following incompatibilities:
-   
-
-   
-
-    
-     
-      In 
-      now see the results of concurrent transactions committed up to the
-      beginning of each statement within the function, rather than up to the
-      beginning of the interactive command that called the function.
-     
-    
-
-    
-     
-      Functions declared 
-      use the snapshot of the calling query, and therefore do not see the
-      effects of actions taken after the calling query starts, whether in
-      their own transaction or other transactions.  Such a function must be
-      read-only, too, meaning that it cannot use any SQL commands other than
-      SELECT.
-     
-    
-
-    
-     
-      Nondeferred 
-      after completion of the triggering query, rather than upon
-      finishing the current interactive command. This makes a
-      difference when the triggering query occurred within a function:
-      the trigger is invoked before the function proceeds to its next
-      operation.
-     
-    
-
-    
-     
-      Server configuration parameters virtual_host and
-      tcpip_socket have been replaced with a more general
-      parameter listen_addresses. Also, the server now listens on
-      localhost by default, which eliminates the need for the
-      -i postmaster switch in many scenarios.
-     
-    
-
-    
-     
-      Server configuration parameters SortMem and
-      VacuumMem have been renamed to work_mem
-      and maintenance_work_mem to better reflect their
-      use. The original names are still supported in
-      SET and SHOW.
-     
-    
-
-    
-     
-      Server configuration parameters log_pid,
-      log_timestamp, and log_source_port have been
-      replaced with a more general parameter log_line_prefix.
-     
-    
-
-    
-     
-      Server configuration parameter syslog has been
-      replaced with a more logical log_destination variable to
-      control the log output destination.
-     
-    
-
-    
-     
-      Server configuration parameter log_statement has been
-      changed so it can selectively log just database modification or
-      data definition statements.  Server configuration parameter
-      log_duration now prints only when log_statement
-      prints the query.
-     
-    
-
-    
-     
-      Server configuration parameter max_expr_depth parameter has
-      been replaced with max_stack_depth which measures the
-      physical stack size rather than the expression nesting depth. This
-      helps prevent session termination due to stack overflow caused by
-      recursive functions.
-     
-    
-
-    
-     
-      The length() function no longer counts trailing spaces in
-      CHAR(n) values.
-     
-    
-
-   
-    
-     Casting an integer to BIT(N) selects the rightmost N bits of the
-     integer, not the leftmost N bits as before.
-    
-   
-
-   
-    
-     Updating an element or slice of a NULL array value now produces
-     a nonnull array result, namely an array containing
-     just the assigned-to positions.
-    
-   
-
-    
-     
-      Syntax checking of array input values has been tightened up
-      considerably. Junk that was previously allowed in odd places with
-      odd results now causes an error. Empty-string element values
-      must now be written as "", rather than writing nothing.
-      Also changed behavior with respect to whitespace surrounding
-      array elements: trailing whitespace is now ignored, for symmetry
-      with leading whitespace (which has always been ignored).
-     
-    
-
-    
-     
-      Overflow in integer arithmetic operations is now detected and
-      reported as an error.
-     
-    
-
-    
-     
-      The arithmetic operators associated with the single-byte
-      "char" data type have been removed.
-     
-    
-
-    
-     
-      The extract() function (also called
-      date_part) now returns the proper year for BC dates.
-      It previously returned one less than the correct year. The
-      function now also returns the proper values for millennium and
-      century.
-     
-    
-
-   
-    
-     CIDR values now must have their nonmasked bits be zero.
-     For example, we no longer allow
-     204.248.199.1/31 as a CIDR value. Such
-     values should never have been accepted by
-     PostgreSQL and will now be rejected.
-    
-   
-
-    
-     
-      EXECUTE now returns a completion tag that
-      matches the executed statement.
-     
-    
-
-    
-     
-      psql's \copy command now reads or
-      writes to the query's stdin/stdout, rather than
-      psql's stdin/stdout. The previous
-      behavior can be accessed via new
-      
-     
-    
-
-    
-     
-     The JDBC client interface has been removed from the core
-     distribution, and is now hosted at 
-     "http://jdbc.postgresql.org">.
-     
-    
-
-    
-     
-     The Tcl client interface has also been removed. There are several
-     Tcl interfaces now hosted at 
-     "http://gborg.postgresql.org">.
-     
-    
-
-    
-     
-      The server now uses its own time zone database, rather than the
-      one supplied by the operating system. This will provide consistent
-      behavior across all platforms.  In most cases, there should be
-      little noticeable difference in time zone behavior, except that
-      the time zone names used by SET/SHOW
-      TimeZone might be different from what your platform provides.
-     
-    
-
-    
-     
-      Configure's threading option no longer requires
-      users to run tests or edit configuration files; threading options
-      are now detected automatically.
-     
-    
-
-    
-     
-      Now that tablespaces have been implemented,
-      initlocation has been removed.
-     
-    
-
-    
-     
-      The API for user-defined GiST indexes has been changed. The
-      Union and PickSplit methods are now passed a pointer to a
-      special GistEntryVector structure,
-      rather than a bytea.
-     
-    
-
-   
-  
-
-  Deprecated Features
-
-  
-    Some aspects of PostgreSQL's behavior
-    have been determined to be suboptimal. For the sake of backward
-    compatibility these have not been removed in 8.0, but they are
-    considered deprecated and will be removed in the next major
-    release.
-    
-
-   
-    
-     
-      The 8.1 release will remove the to_char() function
-      for intervals.
-     
-    
-
-     
-      
-       The server now warns of empty strings passed to
-       oid/float4/float8 data
-       types, but continues to interpret them as zeroes as before.
-       In the next major release, empty strings will be considered
-       invalid input for these data types.
-      
-     
-
-    
-     
-      By default, tables in PostgreSQL 8.0
-      and earlier are created with OIDs. In the next release,
-      this will not be the case: to create a table
-      that contains OIDs, the 
-      be specified or the default_with_oids
-      configuration parameter must be set. Users are encouraged to
-      explicitly specify 
-      require OIDs for compatibility with future releases of
-      PostgreSQL.
-     
-    
-
-   
-  
-
-  
-   Changes
-
-   
-    Below you will find a detailed account of the changes between
-    release 8.0 and the previous major release.
-   
-
-   
-    Performance Improvements
-    
-
-     
-      
-       Support cross-data-type index usage (Tom)
-      
-      
-       Before this change, many queries would not use an index if the data
-       types did not match exactly. This improvement makes index usage more
-       intuitive and consistent.
-      
-     
-
-     
-      
-       New buffer replacement strategy that improves caching (Jan)
-      
-      
-       Prior releases used a least-recently-used (LRU) cache to keep
-       recently referenced pages in memory. The LRU algorithm
-       did not consider the number of times a specific cache entry was
-       accessed, so large table scans could force out useful cache pages.
-       The new cache algorithm uses four separate lists to track most
-       recently used and most frequently used cache pages and dynamically
-       optimize their replacement based on the work load. This should
-       lead to much more efficient use of the shared buffer cache.
-       Administrators who have tested shared buffer sizes in the past
-       should retest with this new cache replacement policy.
-      
-     
-
-     
-      
-       Add subprocess to write dirty buffers periodically to reduce
-       checkpoint writes (Jan)
-      
-      
-       In previous releases, the checkpoint process, which runs every few
-       minutes, would write all dirty buffers to the operating system's
-       buffer cache then flush all dirty operating system buffers to
-       disk. This resulted in a periodic spike in disk usage that often
-       hurt performance. The new code uses a background writer to trickle
-       disk writes at a steady pace so checkpoints have far fewer dirty
-       pages to write to disk. Also, the new code does not issue a global
-       sync() call, but instead fsync()s just
-       the files written since the last checkpoint. This should improve
-       performance and minimize degradation during checkpoints.
-      
-     
-
-     
-      
-       Add ability to prolong vacuum to reduce performance impact (Jan)
-      
-      
-       On busy systems, VACUUM performs many I/O
-       requests which can hurt performance for other users. This
-       release allows you to slow down VACUUM to
-       reduce its impact on other users, though this increases the
-       total duration of VACUUM.
-      
-     
-
-     
-      
-       Improve B-tree index performance for duplicate keys (Dmitry Tkach, Tom)
-      
-      
-       This improves the way indexes are scanned when many duplicate
-       values exist in the index.
-      
-     
-
-     
-      
-       Use dynamically-generated table size estimates while planning (Tom)
-      
-      
-       Formerly the planner estimated table sizes using the values seen
-       by the last VACUUM or ANALYZE,
-       both as to physical table size (number of pages) and number of rows.
-       Now, the current physical table size is obtained from the kernel,
-       and the number of rows is estimated by multiplying the table size
-       by the row density (rows per page) seen by the last
-       VACUUM or ANALYZE.  This should
-       produce more reliable estimates in cases where the table size has
-       changed significantly since the last housekeeping command.
-      
-     
-
-     
-      
-       Improved index usage with OR clauses (Tom)
-      
-      
-       This allows the optimizer to use indexes in statements with many OR
-       clauses that would not have been indexed in the past.  It can also use
-       multi-column indexes where the first column is specified and the second
-       column is part of an OR clause.
-      
-     
-
-     
-      
-       Improve matching of partial index clauses (Tom)
-      
-      
-       The server is now smarter about using partial indexes in queries
-       involving complex 
-      
-     
-
-     
-      
-       Improve performance of the GEQO optimizer (Tom)
-      
-      
-       The GEQO optimizer is used to plan queries involving many tables (by
-       default, twelve or more). This release speeds up the way queries are
-       analyzed to decrease time spent in optimization.
-      
-     
-
-     
-      
-       Miscellaneous optimizer improvements
-      
-      
-       There is not room here to list all the minor improvements made, but
-       numerous special cases work better than in prior releases.
-      
-     
-
-     
-      
-       Improve lookup speed for C functions (Tom)
-      
-      
-       This release uses a hash table to lookup information for dynamically
-       loaded C functions. This improves their speed so they perform nearly as
-       quickly as functions that are built into the server executable.
-      
-     
-
-     
-      
-       Add type-specific ANALYZE statistics
-       capability (Mark Cave-Ayland)
-      
-      
-       This feature allows more flexibility in generating statistics
-       for nonstandard data types.
-      
-     
-
-     
-      
-       ANALYZE now collects statistics for
-       expression indexes (Tom)
-      
-      
-       Expression indexes (also called functional indexes) allow users to
-       index not just columns but the results of expressions and function
-       calls. With this release, the optimizer can gather and use statistics
-       about the contents of expression indexes.  This will greatly improve
-       the quality of planning for queries in which an expression index is
-       relevant.
-      
-     
-
-     
-      
-       New two-stage sampling method for ANALYZE
-       (Manfred Koizar)
-      
-      
-       This gives better statistics when the density of valid rows is very
-       different in different regions of a table.
-      
-     
-
-     
-      
-       Speed up TRUNCATE (Tom)
-      
-      
-       This buys back some of the performance loss observed in 7.4, while still
-       keeping TRUNCATE transaction-safe.
-      
-     
-
-    
-   
-
-
-   
-    Server Changes
-    
-
-     
-      
-       Add WAL file archiving and point-in-time recovery (Simon Riggs)
-      
-     
-
-     
-      
-       Add tablespaces so admins can control disk layout (Gavin)
-      
-     
-
-     
-      
-       Add a built-in log rotation program (Andreas Pflug)
-      
-      
-       It is now possible to log server messages conveniently without
-       relying on either syslog or an external log
-       rotation program.
-      
-     
-
-     
-      
-       Add new read-only server configuration parameters to show server
-       compile-time settings: block_size,
-       integer_datetimes, max_function_args,
-       max_identifier_length, max_index_keys  (Joe)
-      
-     
-
-     
-      
-       Make quoting of sameuser, samegroup, and
-       all remove special meaning of these terms in
-       pg_hba.conf (Andrew)
-      
-     
-
-     
-      
-       Use clearer IPv6 name ::1/128 for
-       localhost in default pg_hba.conf (Andrew)
-      
-     
-
-     
-      
-       Use CIDR format in pg_hba.conf examples (Andrew)
-      
-     
-
-     
-      
-       Rename server configuration parameters SortMem and
-       VacuumMem to work_mem and
-       maintenance_work_mem (Old names still supported) (Tom)
-      
-      
-       This change was made to clarify that bulk operations such as index and
-       foreign key creation use maintenance_work_mem, while
-       work_mem is for workspaces used during query execution.
-      
-     
-
-     
-      
-       Allow logging of session disconnections using server configuration
-       log_disconnections (Andrew)
-      
-     
-
-     
-      
-       Add new server configuration parameter log_line_prefix to
-       allow control of information emitted in each log line (Andrew)
-      
-      
-       Available information includes user name, database name, remote IP
-       address, and session start time.
-      
-     
-
-     
-      
-       Remove server configuration parameters log_pid,
-       log_timestamp, log_source_port; functionality
-       superseded by log_line_prefix (Andrew)
-      
-     
-
-     
-      
-       Replace the virtual_host and tcpip_socket
-       parameters with a unified listen_addresses parameter
-       (Andrew, Tom)
-      
-      
-       virtual_host could only specify a single IP address to
-       listen on.  listen_addresses allows multiple addresses
-       to be specified.
-      
-     
-
-     
-      
-       Listen on localhost by default, which eliminates the need for the
-       
-      
-      
-       Listening on localhost (127.0.0.1) opens no new
-       security holes but allows configurations like Windows and JDBC,
-       which do not support local sockets, to work without special
-       adjustments.
-      
-     
-
-     
-      
-       Remove syslog server configuration parameter, and add more
-       logical log_destination variable to control log output
-       location (Magnus)
-      
-     
-
-     
-      
-       Change server configuration parameter log_statement to take
-       values all, mod, ddl, or
-       none to select which queries are logged (Bruce)
-      
-      
-       This allows administrators to log only data definition changes or
-       only data modification statements.
-      
-     
-
-     
-      
-       Some logging-related configuration parameters could formerly be adjusted
-       by ordinary users, but only in the more verbose direction.
-       They are now treated more strictly: only superusers can set them.
-       However, a superuser can use ALTER USER to provide per-user
-       settings of these values for non-superusers.  Also, it is now possible
-       for superusers to set values of superuser-only configuration parameters
-       via PGOPTIONS.
-      
-     
-
-     
-      
-       Allow configuration files to be placed outside the data directory (mlw)
-      
-      
-       By default, configuration files are kept in the cluster's top directory.
-       With this addition, configuration files can be placed outside the
-       data directory, easing administration.
-      
-     
-
-     
-      
-       Plan prepared queries only when first executed so constants can be
-       used for statistics (Oliver Jowett)
-      
-      
-       Prepared statements plan queries once and execute them many
-       times. While prepared queries avoid the overhead of re-planning
-       on each use, the quality of the plan suffers from not knowing the exact
-       parameters to be used in the query.  In this release, planning of
-       unnamed prepared statements is delayed until the first execution,
-       and the actual parameter values of that execution are used as
-       optimization hints.  This allows use of out-of-line parameter passing
-       without incurring a performance penalty.
-      
-     
-
-     
-      
-       Allow DECLARE CURSOR to take parameters
-       (Oliver Jowett)
-      
-      
-       It is now useful to issue DECLARE CURSOR in a
-       Parse message with parameters. The parameter values
-       sent at Bind time will be substituted into the
-       execution of the cursor's query.
-      
-     
-
-     
-      
-       Fix hash joins and aggregates of inet and
-       cidr data types (Tom)
-      
-      
-       Release 7.4 handled hashing of mixed inet and
-       cidr values incorrectly.  (This bug did not exist
-       in prior releases because they wouldn't try to hash either
-       data type.)
-      
-     
-
-     
-      
-       Make log_duration print only when log_statement
-       prints the query (Ed L.)
-      
-     
-
-    
-   
-
-
-   
-    Query Changes
-    
-
-     
-      
-       Add savepoints (nested transactions) (Alvaro)
-      
-     
-
-     
-      
-       Unsupported isolation levels are now accepted and promoted to the
-       nearest supported level (Peter)
-      
-      
-       The SQL specification states that if a database doesn't support a
-       specific isolation level, it should use the next more restrictive level.
-       This change complies with that recommendation.
-      
-     
-
-     
-      
-       Allow BEGIN WORK to specify transaction
-       isolation levels like START TRANSACTION does
-       (Bruce)
-      
-     
-
-     
-      
-       Fix table permission checking for cases in which rules generate
-       a query type different from the originally submitted query (Tom)
-      
-     
-
-     
-      
-       Implement dollar quoting to simplify single-quote usage (Andrew, Tom,
-       David Fetter)
-      
-      
-       In previous releases, because single quotes had to be used to
-       quote a function's body, the use of single quotes inside the
-       function text required use of two single quotes or other error-prone
-       notations. With this release we add the ability to use "dollar
-       quoting" to quote a block of text.  The ability to use different
-       quoting delimiters at different nesting levels greatly simplifies
-       the task of quoting correctly, especially in complex functions.
-       Dollar quoting can be used anywhere quoted text is needed.
-      
-     
-
-     
-      
-       Make CASE val WHEN compval1 THEN ... evaluate val only once (Tom)
-      
-      
-       
-       times. This has benefits when the expression is complex or is
-       volatile.
-      
-     
-
-     
-      
-       Test 
-       aggregate query (Tom)
-      
-      
-       Fixes improper failure of cases such as SELECT SUM(win)/SUM(lose)
-       ... GROUP BY ... HAVING SUM(lose) > 0.  This should work but formerly
-       could fail with divide-by-zero.
-      
-     
-
-     
-      
-       Replace max_expr_depth parameter with
-       max_stack_depth parameter, measured in kilobytes of stack
-       size (Tom)
-      
-      
-      This gives us a fairly bulletproof defense against crashing due to
-      runaway recursive functions. Instead of measuring the depth of expression
-      nesting, we now directly measure the size of the execution stack.
-      
-     
-
-     
-      
-       Allow arbitrary row expressions (Tom)
-      
-      
-       This release allows SQL expressions to contain arbitrary composite
-       types, that is, row values. It also allows functions to more easily
-       take rows as arguments and return row values.
-      
-     
-
-     
-      
-       Allow 
-       in row and subselect comparisons (Fabien Coelho)
-      
-     
-
-     
-      
-       Avoid locale-specific case conversion of basic ASCII letters in
-       identifiers and keywords (Tom)
-      
-      
-       This solves the Turkish problem with mangling of words
-       containing I and  i.  Folding of characters
-       outside the 7-bit-ASCII set is still locale-aware.
-      
-     
-
-     
-      
-       Improve syntax error reporting (Fabien, Tom)
-      
-      
-       Syntax error reports are more useful than before.
-      
-     
-
-     
-      
-       Change EXECUTE to return a completion tag
-       matching the executed statement (Kris Jurka)
-      
-      
-       Previous releases return an EXECUTE tag for
-       any EXECUTE call. In this release, the tag
-       returned will reflect the command executed.
-      
-     
-
-     
-      
-       Avoid emitting 
-      
-      
-       Such a clause makes no logical sense, but in some cases the rule
-       decompiler formerly produced this syntax.
-      
-     
-
-    
-   
-
-
-   
-    Object Manipulation Changes
-    
-
-     
-      
-       Add COMMENT ON for casts, conversions, languages,
-       operator classes, and large objects (Christopher)
-      
-     
-
-     
-      
-       Add new server configuration parameter default_with_oids to
-       control whether tables are created with OIDs by default (Neil)
-      
-      
-       This allows administrators to control whether CREATE
-       TABLE commands create tables with or without OID
-       columns by default.  (Note: the current factory default setting for
-       default_with_oids is TRUE, but the default
-       will become FALSE in future releases.)
-      
-     
-
-     
-      
-       Add 
-       CREATE TABLE AS (Neil)
-      
-     
-
-     
-      
-       Allow ALTER TABLE DROP COLUMN to drop an OID
-       column (ALTER TABLE SET WITHOUT OIDS still works)
-       (Tom)
-      
-     
-
-     
-      
-       Allow composite types as table columns (Tom)
-      
-     
-
-     
-      
-       Allow ALTER ... ADD COLUMN with defaults and
-       
-      
-      
-       It is now possible for 
-       that is not initially filled with NULLs, but with a specified
-       default value.
-      
-     
-
-     
-      
-       Add ALTER COLUMN TYPE to change column's type (Rod)
-      
-      
-       It is now possible to alter a column's data type without dropping
-       and re-adding the column.
-      
-     
-
-     
-      
-       Allow multiple ALTER actions in a single ALTER
-       TABLE command (Rod)
-      
-      
-       This is particularly useful for ALTER commands that
-       rewrite the table (which include 
-       
-       ALTER commands together, the table need be rewritten
-       only once.
-      
-     
-
-     
-      
-       Allow ALTER TABLE to add SERIAL
-       columns (Tom)
-      
-      
-       This falls out from the new capability of specifying defaults for new
-       columns.
-      
-     
-
-     
-      
-       Allow changing the owners of aggregates, conversions, databases,
-       functions, operators, operator classes, schemas, types, and tablespaces
-       (Christopher, Euler Taveira de Oliveira)
-      
-      
-       Previously this required modifying the system tables directly.
-      
-     
-
-     
-      
-       Allow temporary object creation to be limited to 
-       DEFINER functions (Sean Chittenden)
-      
-     
-
-     
-      
-       Add 
-      
-      
-       Prior to this release, there was no way to clear an auto-cluster
-       specification except to modify the system tables.
-      
-     
-
-     
-      
-       Constraint/Index/SERIAL names are now
-       table_column_type
-       with numbers appended to guarantee uniqueness within the schema
-       (Tom)
-      
-      
-       The SQL specification states that such names should be unique
-       within a schema.
-      
-     
-
-     
-      
-       Add pg_get_serial_sequence() to return a
-       SERIAL column's sequence name (Christopher)
-      
-      
-       This allows automated scripts to reliably find the SERIAL
-       sequence name.
-      
-     
-
-     
-      
-       Warn when primary/foreign key data type mismatch requires costly lookup
-      
-     
-
-     
-      
-       New ALTER INDEX command to allow moving of indexes
-       between tablespaces (Gavin)
-      
-     
-
-     
-      
-       Make ALTER TABLE OWNER change dependent sequence
-       ownership too (Alvaro)
-      
-     
-
-
-    
-   
-
-
-   
-    Utility Command Changes
-    
-
-     
-      
-       Allow CREATE SCHEMA to create triggers,
-       indexes, and sequences (Neil)
-      
-     
-
-     
-      
-       Add 
-       Coelho)
-      
-      
-       This allows 
-       
-      
-     
-
-     
-      
-       Add 
-      
-      
-       This allows the LOCK command to fail if it
-       would have to wait for the requested lock.
-      
-     
-
-     
-      
-       Allow COPY to read and write
-       comma-separated-value (CSV) files (Andrew, Bruce)
-      
-     
-
-     
-      
-       Generate error if the COPY delimiter and NULL
-       string conflict (Bruce)
-      
-     
-
-     
-      
-       GRANT/REVOKE behavior
-       follows the SQL spec more closely
-      
-     
-
-     
-      
-       Avoid locking conflict between CREATE INDEX
-       and CHECKPOINT (Tom)
-      
-      
-       In 7.3 and 7.4, a long-running B-tree index build could block concurrent
-       CHECKPOINTs from completing, thereby causing WAL bloat because the
-       WAL log could not be recycled.
-      
-     
-
-     
-      
-       Database-wide ANALYZE does not hold locks
-       across tables (Tom)
-      
-      
-       This reduces the potential for deadlocks against other backends
-       that want exclusive locks on tables.  To get the benefit of this
-       change, do not execute database-wide ANALYZE
-       inside a transaction block (BEGIN block); it
-       must be able to commit and start a new transaction for each
-       table.
-      
-     
-
-     
-      
-       REINDEX does not exclusively lock the index's
-       parent table anymore
-      
-      
-       The index itself is still exclusively locked, but readers of the
-       table can continue if they are not using the particular index
-       being rebuilt.
-      
-     
-
-     
-      
-       Erase MD5 user passwords when a user is renamed (Bruce)
-      
-      
-       PostgreSQL uses the user name as salt
-       when encrypting passwords via MD5. When a user's name is changed,
-       the salt will no longer match the stored MD5 password, so the
-       stored password becomes useless.  In this release a notice is
-       generated and the password is cleared.  A new password must then
-       be assigned if the user is to be able to log in with a password.
-      
-     
-
-     
-      
-       New pg_ctl 
-      
-      
-       Windows does not have a kill command to send signals to
-       backends so this capability was added to pg_ctl.
-      
-     
-
-     
-      
-       Information schema improvements
-      
-     
-
-     
-      
-       Add 
-       initdb so the initial password can be
-       set by GUI tools (Magnus)
-      
-     
-
-     
-      
-       Detect locale/encoding mismatch in
-       initdb (Peter)
-      
-     
-
-     
-      
-       Add 
-       register Windows operating system service (Dave Page)
-      
-     
-
-    
-   
-
-
-   
-    Data Type and Function Changes
-    
-
-     
-      
-       More complete support for composite types (row types)  (Tom)
-      
-      
-       Composite values can be used in many places where only scalar values
-       worked before.
-      
-     
-
-     
-      
-       Reject nonrectangular array values as erroneous (Joe)
-      
-      
-       Formerly, array_in would silently build a
-       surprising result.
-      
-     
-
-      
-       
-        Overflow in integer arithmetic operations is now detected (Tom)
-       
-      
-
-      
-       
-        The arithmetic operators associated with the single-byte
-        "char" data type have been removed.
-       
-       
-        Formerly, the parser would select these operators in many situations
-        where an unable to select an operator error would be more
-        appropriate, such as null * null.  If you actually want
-        to do arithmetic on a "char" column, you can cast it to
-        integer explicitly.
-       
-      
-
-     
-       
-        Syntax checking of array input values considerably tightened up (Joe)
-       
-      
-        Junk that was previously allowed in odd places with odd results
-        now causes an ERROR, for example, non-whitespace
-        after the closing right brace.
-       
-     
-
-     
-       
-        Empty-string array element values must now be written as
-        "", rather than writing nothing (Joe)
-       
-      
-        Formerly, both ways of writing an empty-string element value were
-        allowed, but now a quoted empty string is required.  The case where
-        nothing at all appears will probably be considered to be a NULL
-        element value in some future release.
-       
-     
-
-     
-       
-        Array element trailing whitespace is now ignored (Joe)
-       
-      
-        Formerly leading whitespace was ignored, but trailing whitespace
-        between an element value and the delimiter or right brace was
-        significant.  Now trailing whitespace is also ignored.
-       
-     
-
-     
-      
-       Emit array values with explicit array bounds when lower bound is not one
-       (Joe)
-      
-     
-
-     
-      
-       Accept YYYY-monthname-DD as a date string (Tom)
-      
-     
-
-     
-      
-       Make netmask and hostmask functions
-       return maximum-length mask length (Tom)
-      
-     
-
-     
-      
-       Change factorial function to return numeric (Gavin)
-      
-      
-       Returning numeric allows the factorial function to
-       work for a wider range of input values.
-      
-     
-
-     
-      
-       to_char/to_date() date conversion
-       improvements (Kurt Roeckx, Fabien Coelho)
-      
-     
-
-     
-      
-       Make length() disregard trailing spaces in
-       CHAR(n) (Gavin)
-      
-      
-       This change was made to improve consistency: trailing spaces are
-       semantically insignificant in CHAR(n) data, so they
-       should not be counted by length().
-      
-     
-
-     
-      
-       Warn about empty string being passed to
-       OID/float4/float8 data types (Neil)
-      
-      
-       8.1 will throw an error instead.
-      
-     
-
-     
-      
-       Allow leading or trailing whitespace in
-       int2/int4/int8/float4/float8
-       input routines
-       (Neil)
-      
-     
-
-     
-      
-       Better support for IEEE Infinity and NaN
-       values in float4/float8 (Neil)
-      
-      
-       These should now work on all platforms that support IEEE-compliant
-       floating point arithmetic.
-      
-     
-
-     
-      
-       Add 
-      
-     
-
-     
-      
-       Fix to_char for 1 BC
-       (previously it returned 1 AD) (Bruce)
-      
-     
-
-     
-      
-       Fix date_part(year) for BC dates (previously it
-       returned one less than the correct year) (Bruce)
-      
-     
-
-     
-      
-       Fix date_part() to return the proper millennium and
-       century (Fabien Coelho)
-      
-      
-       In previous versions, the century and millennium results had a wrong
-       number and started in the wrong year, as compared to standard
-       reckoning of such things.
-      
-     
-
-     
-      
-       Add ceiling() as an alias for ceil(),
-       and power() as an alias for pow() for
-       standards compliance (Neil)
-      
-     
-
-     
-      
-       Change ln(), log(),
-       power(), and sqrt() to emit the correct
-       SQLSTATE error codes for certain error conditions, as
-       specified by SQL:2003 (Neil)
-      
-     
-
-     
-      
-       Add width_bucket() function as defined by SQL:2003 (Neil)
-      
-     
-
-     
-      
-       Add generate_series() functions to simplify working
-       with numeric sets (Joe)
-      
-     
-
-     
-      
-       Fix upper/lower/initcap() functions to work with
-       multibyte encodings (Tom)
-      
-     
-
-     
-      
-       Add boolean and bitwise integer 
-       aggregates (Fabien Coelho)
-      
-     
-
-     
-      
-       New session information functions to return network addresses for client
-       and server (Sean Chittenden)
-      
-     
-
-     
-      
-       Add function to determine the area of a closed path (Sean Chittenden)
-      
-     
-
-     
-      
-       Add function to send cancel request to other backends (Magnus)
-      
-     
-
-     
-      
-       Add interval plus datetime operators (Tom)
-      
-      
-       The reverse ordering, datetime plus interval,
-       was already supported, but both are required by the SQL standard.
-      
-     
-
-     
-      
-       Casting an integer to BIT(N) selects the rightmost N bits
-       of the integer
-       (Tom)
-      
-      
-       In prior releases, the leftmost N bits were selected, but this was
-       deemed unhelpful, not to mention inconsistent with casting from bit
-       to int.
-      
-     
-
-     
-      
-       Require CIDR values to have all nonmasked bits be zero
-       (Kevin Brintnall)
-      
-     
-
-    
-   
-
-
-   
-    Server-Side Language Changes
-    
-
-     
-      
-       In READ COMMITTED serialization mode, volatile functions
-       now see the results of concurrent transactions committed up to the
-       beginning of each statement within the function, rather than up to the
-       beginning of the interactive command that called the function.
-      
-     
-
-     
-      
-       Functions declared STABLE or IMMUTABLE always
-       use the snapshot of the calling query, and therefore do not see the
-       effects of actions taken after the calling query starts, whether in
-       their own transaction or other transactions.  Such a function must be
-       read-only, too, meaning that it cannot use any SQL commands other than
-       SELECT.  There is a considerable performance gain from
-       declaring a function STABLE or IMMUTABLE
-       rather than VOLATILE.
-      
-     
-
-     
-      
-       Nondeferred 
-       after completion of the triggering query, rather than upon
-       finishing the current interactive command. This makes a difference
-       when the triggering query occurred within a function: the trigger
-       is invoked before the function proceeds to its next operation. For
-       example, if a function inserts a new row into a table, any
-       nondeferred foreign key checks occur before proceeding with the
-       function.
-      
-     
-
-     
-      
-       Allow function parameters to be declared with names (Dennis Björklund)
-      
-      
-       This allows better documentation of functions.  Whether the names
-       actually do anything depends on the specific function language
-       being used.
-      
-     
-
-     
-      
-       Allow PL/pgSQL parameter names to be referenced in the function (Dennis Björklund)
-      
-      
-       This basically creates an automatic alias for each named parameter.
-      
-     
-
-     
-      
-       Do minimal syntax checking of PL/pgSQL functions at creation time (Tom)
-      
-      
-       This allows us to catch simple syntax errors sooner.
-      
-     
-
-     
-      
-       More support for composite types (row and record variables) in PL/pgSQL
-      
-      
-       For example, it now works to pass a rowtype variable to another function
-       as a single variable.
-      
-     
-
-     
-      
-       Default values for PL/pgSQL variables can now reference previously
-       declared variables
-      
-     
-
-     
-      
-       Improve parsing of PL/pgSQL FOR loops (Tom)
-      
-      
-       Parsing is now driven by presence of ".." rather than
-       data type of 
-       correct functions, but should result in more understandable error
-       messages when a mistake is made.
-      
-     
-
-     
-      
-       Major overhaul of PL/Perl server-side language (Command Prompt, Andrew Dunstan)
-      
-     
-
-     
-      
-       In PL/Tcl, SPI commands are now run in subtransactions.  If an error
-       occurs, the subtransaction is cleaned up and the error is reported
-       as an ordinary Tcl error, which can be trapped with catch.
-       Formerly, it was not possible to catch such errors.
-      
-     
-
-     
-      
-       Accept ELSEIF in PL/pgSQL (Neil)
-      
-      
-       Previously PL/pgSQL only allowed ELSIF, but many people
-       are accustomed to spelling this keyword ELSEIF.
-      
-     
-
-    
-   
-
-
-   
-    <application>psql</> Changes
-    
-
-     
-      
-       Improve psql information display about database
-       objects (Christopher)
-      
-     
-
-     
-      
-       Allow psql to display group membership in
-       \du and \dg (Markus Bertheau)
-      
-     
-
-     
-      
-       Prevent psql \dn from showing
-       temporary schemas (Bruce)
-      
-     
-
-     
-      
-       Allow psql to handle tilde user expansion for file
-       names (Zach Irmen)
-      
-     
-
-     
-      
-       Allow psql to display fancy prompts, including
-       color, via readline (Reece Hart, Chet Ramey)
-      
-     
-
-     
-      
-       Make psql \copy match COPY command syntax
-       fully (Tom)
-      
-     
-
-     
-      
-       Show the location of syntax errors (Fabien Coelho, Tom)
-      
-     
-
-     
-      
-       Add CLUSTER information to psql
-       \d display
-       (Bruce)
-      
-     
-
-     
-      
-       Change psql \copy stdin/stdout to read
-       from command input/output (Bruce)
-      
-     
-
-     
-      
-       Add 
-       psql's stdin/stdout (Mark
-       Feit)
-      
-     
-
-     
-      
-       Add global psql configuration file, psqlrc.sample
-       (Bruce)
-      
-      
-       This allows a central file where global psql startup commands can
-       be stored.
-      
-     
-
-     
-      
-       Have psql \d+ indicate if the table
-       has an OID column (Neil)
-      
-     
-
-     
-      
-       On Windows, use binary mode in psql when reading files so control-Z
-       is not seen as end-of-file
-      
-     
-
-     
-      
-       Have \dn+ show permissions and description for schemas (Dennis
-       Björklund)
-      
-     
-
-     
-      
-       Improve tab completion support (Stefan Kaltenbrunn, Greg Sabino Mullane)
-      
-     
-
-     
-      
-       Allow boolean settings to be set using upper or lower case (Michael Paesold)
-      
-     
-
-    
-   
-
-
-   
-    <application>pg_dump</> Changes
-    
-
-     
-      
-       Use dependency information to improve the reliability of
-       pg_dump (Tom)
-      
-      
-       This should solve the longstanding problems with related objects
-       sometimes being dumped in the wrong order.
-      
-     
-
-     
-      
-       Have pg_dump output objects in alphabetical order if possible (Tom)
-      
-      
-       This should make it easier to identify changes between
-       dump files.
-      
-     
-
-     
-      
-       Allow pg_restore to ignore some SQL errors (Fabien Coelho)
-      
-      
-       This makes pg_restore's behavior similar to the
-       results of feeding a pg_dump output script to
-       psql. In most cases, ignoring errors and plowing
-       ahead is the most useful thing to do. Also added was a pg_restore
-       option to give the old behavior of exiting on an error.
-      
-     
-
-     
-      
-       pg_restore 
-       objects' schema names
-      
-     
-
-     
-      
-       New begin/end markers in pg_dump text output (Bruce)
-      
-     
-
-     
-      
-       Add start/stop times for
-       pg_dump/pg_dumpall in verbose mode
-       (Bruce)
-      
-     
-
-     
-      
-       Allow most pg_dump options in
-       pg_dumpall (Christopher)
-      
-     
-
-     
-      
-       Have pg_dump use ALTER OWNER rather
-       than SET SESSION AUTHORIZATION by default
-       (Christopher)
-      
-     
-
-    
-   
-
-
-   
-    libpq Changes
-    
-
-     
-      
-       Make libpq's 
-      
-     
-
-     
-      
-       Add PQmbdsplen() which returns the display length
-       of a character (Tatsuo)
-      
-     
-
-     
-      
-       Add thread locking to SSL and
-       Kerberos connections (Manfred Spraul)
-      
-     
-
-     
-      
-       Allow PQoidValue(), PQcmdTuples(), and
-       PQoidStatus() to work on EXECUTE
-       commands (Neil)
-      
-     
-
-     
-      
-       Add PQserverVersion() to provide more convenient
-       access to the server version number (Greg Sabino Mullane)
-      
-     
-
-     
-      
-       Add PQprepare/PQsendPrepared() functions to support
-       preparing statements without necessarily specifying the data types
-       of their parameters (Abhijit Menon-Sen)
-      
-     
-
-     
-      
-       Many ECPG improvements, including SET DESCRIPTOR (Michael)
-      
-     
-
-    
-   
-
-
-   
-    Source Code Changes
-    
-
-     
-      
-       Allow the database server to run natively on Windows (Claudio, Magnus, Andrew)
-      
-     
-
-     
-      
-       Shell script commands converted to C versions for Windows support (Andrew)
-      
-     
-
-     
-      
-       Create an extension makefile framework (Fabien Coelho, Peter)
-      
-      
-       This simplifies the task of building extensions outside the original
-       source tree.
-      
-     
-
-     
-      
-       Support relocatable installations (Bruce)
-      
-      
-       Directory paths for installed files (such as the
-       /share directory) are now computed relative to the
-       actual location of the executables, so that an installation tree
-       can be moved to another place without reconfiguring and
-       rebuilding.
-      
-     
-
-     
-      
-       Use 
-       allow 
-      
-     
-
-     
-      
-       Add 
-      
-     
-
-     
-      
-       Upgrade to DocBook V4.2 SGML (Peter)
-      
-     
-
-     
-      
-       New PostgreSQL CVS tag (Marc)
-      
-      
-       This was done to make it easier for organizations to manage their
-       own copies of the PostgreSQL
-       CVS repository. File version stamps from the master
-       repository will not get munged by checking into or out of a copied
-       repository.
-      
-     
-
-     
-      
-       Clarify locking code (Manfred Koizar)
-      
-     
-
-     
-      
-       Buffer manager cleanup (Neil)
-      
-     
-
-     
-      
-       Decouple platform tests from CPU spinlock code (Bruce, Tom)
-      
-     
-
-     
-      
-       Add inlined test-and-set code on PA-RISC for gcc
-       (ViSolve, Tom)
-      
-     
-
-     
-      
-       Improve i386 spinlock code (Manfred Spraul)
-      
-     
-
-     
-      
-       Clean up spinlock assembly code to avoid warnings from newer
-       gcc releases (Tom)
-      
-     
-
-     
-      
-       Remove JDBC from source tree; now a separate project
-      
-     
-
-     
-      
-       Remove the libpgtcl client interface; now a separate project
-      
-     
-
-     
-      
-       More accurately estimate memory and file descriptor usage (Tom)
-      
-     
-
-     
-      
-       Improvements to the Mac OS X startup scripts (Ray A.)
-      
-     
-
-     
-      
-       New fsync() test program (Bruce)
-      
-     
-
-     
-      
-       Major documentation improvements (Neil, Peter)
-      
-     
-
-     
-      
-       Remove pg_encoding; not needed
-       anymore
-      
-     
-
-     
-      
-       Remove pg_id; not needed anymore
-      
-     
-
-     
-      
-       Remove initlocation; not needed
-       anymore
-      
-     
-
-     
-      
-       Auto-detect thread flags (no more manual testing) (Bruce)
-      
-     
-
-     
-      
-       Use Olson's public domain timezone library (Magnus)
-      
-     
-
-     
-      
-       With threading enabled, use thread flags on Unixware for
-       backend executables too (Bruce)
-      
-      
-       Unixware cannot mix threaded and nonthreaded object files in the
-       same executable, so everything must be compiled as threaded.
-      
-     
-
-     
-      
-       psql now uses a flex-generated
-       lexical analyzer to process command strings
-      
-     
-
-     
-      
-       Reimplement the linked list data structure used throughout the
-       backend (Neil)
-      
-      
-       This improves performance by allowing list append and length
-       operations to be more efficient.
-      
-     
-
-     
-      
-       Allow dynamically loaded modules to create their own server configuration
-       parameters (Thomas Hallgren)
-      
-     
-
-     
-      
-       New Brazilian version of FAQ (Euler Taveira de Oliveira)
-      
-     
-
-     
-      
-       Add French FAQ (Guillaume Lelarge)
-      
-     
-
-     
-      
-       New pgevent for Windows logging
-      
-     
-
-     
-      
-       Make libpq and ECPG build as proper shared libraries on OS X (Tom)
-      
-     
-
-    
-   
-
-
-   
-    Contrib Changes
-    
-
-     
-      
-       Overhaul of contrib/dblink (Joe)
-      
-     
-
-     
-      
-       contrib/dbmirror improvements (Steven Singer)
-      
-     
-
-     
-      
-       New contrib/xml2 (John Gray, Torchbox)
-      
-     
-
-     
-      
-       Updated contrib/mysql
-      
-     
-
-     
-      
-       New version of contrib/btree_gist (Teodor)
-      
-     
-
-     
-      
-       New contrib/trgm, trigram matching for
-       PostgreSQL (Teodor)
-      
-     
-
-     
-      
-       Many contrib/tsearch2 improvements (Teodor)
-      
-     
-
-     
-      
-       Add double metaphone to contrib/fuzzystrmatch (Andrew)
-      
-     
-
-     
-      
-       Allow contrib/pg_autovacuum to run as a Windows service (Dave Page)
-      
-     
-
-     
-      
-       Add functions to contrib/dbsize (Andreas Pflug)
-      
-     
-
-     
-      
-       Removed contrib/pg_logger: obsoleted by integrated logging
-       subprocess
-      
-     
-
-     
-      
-       Removed contrib/rserv: obsoleted by various separate projects
-      
-     
-
-    
-   
-
-  
-
-  Release 7.4.25
-
-  
-  Release date
-  2009-03-16
-  
-
-  
-   This release contains a variety of fixes from 7.4.24.
-   For information about new features in the 7.4 major release, see
-   .
-  
-
-  
-   Migration to Version 7.4.25
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Prevent error recursion crashes when encoding conversion fails (Tom)
-     
-
-     
-      This change extends fixes made in the last two minor releases for
-      related failure scenarios.  The previous fixes were narrowly tailored
-      for the original problem reports, but we have now recognized that
-      any error thrown by an encoding conversion function could
-      potentially lead to infinite recursion while trying to report the
-      error.  The solution therefore is to disable translation and encoding
-      conversion and report the plain-ASCII form of any error message,
-      if we find we have gotten into a recursive error reporting situation.
-      (CVE-2009-0922)
-     
-    
-
-    
-     
-      Disallow CREATE CONVERSION with the wrong encodings
-      for the specified conversion function (Heikki)
-     
-
-     
-      This prevents one possible scenario for encoding conversion failure.
-      The previous change is a backstop to guard against other kinds of
-      failures in the same area.
-     
-    
-
-    
-     
-      Fix core dump when to_char() is given format codes that
-      are inappropriate for the type of the data argument (Tom)
-     
-    
-
-    
-     
-      Add MUST (Mauritius Island Summer Time) to the default list
-      of known timezone abbreviations (Xavier Bugaud)
-     
-    
-
-   
-
-  
-
-  Release 7.4.24
-
-  
-  Release date
-  2009-02-02
-  
-
-  
-   This release contains a variety of fixes from 7.4.23.
-   For information about new features in the 7.4 major release, see
-   .
-  
-
-  
-   Migration to Version 7.4.24
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Improve handling of URLs in headline() function (Teodor)
-     
-    
-
-    
-     
-      Improve handling of overlength headlines in headline()
-      function (Teodor)
-     
-    
-
-    
-     
-      Prevent possible Assert failure or misconversion if an encoding
-      conversion is created with the wrong conversion function for the
-      specified pair of encodings (Tom, Heikki)
-     
-    
-
-    
-     
-      Avoid unnecessary locking of small tables in VACUUM
-      (Heikki)
-     
-    
-
-    
-     
-      Fix uninitialized variables in contrib/tsearch2's
-      get_covers() function (Teodor)
-     
-    
-
-    
-     
-      Fix bug in to_char()'s handling of TH
-      format codes (Andreas Scherbaum)
-     
-    
-
-    
-     
-      Make all documentation reference pgsql-bugs and/or
-      pgsql-hackers as appropriate, instead of the
-      now-decommissioned pgsql-ports and pgsql-patches
-      mailing lists (Tom)
-     
-    
-
-   
-
-  
-
-  Release 7.4.23
-
-  
-  Release date
-  2008-11-03
-  
-
-  
-   This release contains a variety of fixes from 7.4.22.
-   For information about new features in the 7.4 major release, see
-   .
-  
-
-  
-   Migration to Version 7.4.23
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Fix backend crash when the client encoding cannot represent a localized
-      error message (Tom)
-     
-
-     
-      We have addressed similar issues before, but it would still fail if
-      the character has no equivalent message itself couldn't
-      be converted.  The fix is to disable localization and send the plain
-      ASCII error message when we detect such a situation.
-     
-    
-
-    
-     
-      Fix incorrect tsearch2 headline generation when single query
-      item matches first word of text (Sushant Sinha)
-     
-    
-
-    
-     
-      Fix improper display of fractional seconds in interval values when
-      using a non-ISO datestyle in an 
-      build (Ron Mayer)
-     
-    
-
-    
-     
-      Ensure SPI_getvalue and SPI_getbinval
-      behave correctly when the passed tuple and tuple descriptor have
-      different numbers of columns (Tom)
-     
-
-     
-      This situation is normal when a table has had columns added or removed,
-      but these two functions didn't handle it properly.
-      The only likely consequence is an incorrect error indication.
-     
-    
-
-    
-     
-      Fix ecpg's parsing of CREATE USER (Michael)
-     
-    
-
-   
-
-  
-
-  Release 7.4.22
-
-  
-  Release date
-  2008-09-22
-  
-
-  
-   This release contains a variety of fixes from 7.4.21.
-   For information about new features in the 7.4 major release, see
-   .
-  
-
-  
-   Migration to Version 7.4.22
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Fix datetime input functions to correctly detect integer overflow when
-      running on a 64-bit platform (Tom)
-     
-    
-
-    
-     
-      Improve performance of writing very long log messages to syslog (Tom)
-     
-    
-
-    
-     
-      Fix bug in backwards scanning of a cursor on a SELECT DISTINCT
-      ON query (Tom)
-     
-    
-
-    
-     
-      Fix planner to estimate that GROUP BY expressions yielding
-      boolean results always result in two groups, regardless of the
-      expressions' contents (Tom)
-     
-
-     
-      This is very substantially more accurate than the regular GROUP
-      BY estimate for certain boolean tests like col
-      IS NULL.
-     
-    
-
-    
-     
-      Improve pg_dump and pg_restore's
-      error reporting after failure to send a SQL command (Tom)
-     
-    
-
-   
-
-  
-
-  Release 7.4.21
-
-  
-  Release date
-  2008-06-12
-  
-
-  
-   This release contains one serious bug fix over 7.4.20.
-   For information about new features in the 7.4 major release, see
-   .
-  
-
-  
-   Migration to Version 7.4.21
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Make pg_get_ruledef() parenthesize negative constants (Tom)
-     
-
-     
-      Before this fix, a negative constant in a view or rule might be dumped
-      as, say, -42::integer, which is subtly incorrect: it should
-      be (-42)::integer due to operator precedence rules.
-      Usually this would make little difference, but it could interact with
-      another recent patch to cause
-      PostgreSQL to reject what had been a valid
-      SELECT DISTINCT view query.  Since this could result in
-      pg_dump output failing to reload, it is being treated
-      as a high-priority fix.  The only released versions in which dump
-      output is actually incorrect are 8.3.1 and 8.2.7.
-     
-    
-
-   
-
-  
-
-  Release 7.4.20
-
-  
-  Release date
-  never released
-  
-
-  
-   This release contains a variety of fixes from 7.4.19.
-   For information about new features in the 7.4 major release, see
-   .
-  
-
-  
-   Migration to Version 7.4.20
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Fix conversions between ISO-8859-5 and other encodings to handle
-      Cyrillic Yo characters (e and E with
-      two dots) (Sergey Burladyan)
-     
-    
-
-    
-     
-      Fix a few datatype input functions
-      that were allowing unused bytes in their results to contain
-      uninitialized, unpredictable values (Tom)
-     
-
-     
-      This could lead to failures in which two apparently identical literal
-      values were not seen as equal, resulting in the parser complaining
-      about unmatched ORDER BY and DISTINCT
-      expressions.
-     
-    
-
-    
-     
-      Fix a corner case in regular-expression substring matching
-      (substring(string from
-      pattern)) (Tom)
-     
-
-     
-      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
-      substring('foo' from 'foo(bar)?').
-      This should return NULL, since (bar) isn't matched, but
-      it was mistakenly returning the whole-pattern match instead (ie,
-      foo).
-     
-    
-
-    
-     
-      Fix incorrect result from ecpg's
-      PGTYPEStimestamp_sub() function (Michael)
-     
-    
-
-    
-     
-      Fix DatumGetBool macro to not fail with gcc
-      4.3 (Tom)
-     
-
-     
-      This problem affects 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.
-     
-    
-
-    
-     
-      Fix longstanding LISTEN/NOTIFY
-      race condition (Tom)
-     
-
-     
-      In rare cases a session that had just executed a
-      LISTEN might not get a notification, even though
-      one would be expected because the concurrent transaction executing
-      NOTIFY was observed to commit later.
-     
-
-     
-      A side effect of the fix is that a transaction that has executed
-      a not-yet-committed LISTEN command will not see any
-      row in pg_listener for the 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.
-     
-    
-
-    
-     
-      Fix display of constant expressions in ORDER BY
-      and GROUP BY (Tom)
-     
-
-     
-      An explictly casted constant would be shown incorrectly.  This could
-      for example lead to corruption of a view definition during
-      dump and reload.
-     
-    
-
-    
-     
-      Fix libpq to handle NOTICE messages correctly
-      during COPY OUT (Tom)
-     
-
-     
-      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.
-     
-    
-
-   
-
-  
-
-  Release 7.4.19
-
-  
-  Release date
-  2008-01-07
-  
-
-  
-   This release contains a variety of fixes from 7.4.18,
-   including fixes for significant security issues.
-   For information about new features in the 7.4 major release, see
-   .
-  
-
-  
-   Migration to Version 7.4.19
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Prevent functions in indexes from executing with the privileges of
-      the user running VACUUM, ANALYZE, etc (Tom)
-     
-
-     
-      Functions used in index expressions and partial-index
-      predicates are evaluated whenever a new table entry is made.  It has
-      long been understood that this poses a risk of trojan-horse code
-      execution if one modifies a table owned by an untrustworthy user.
-      (Note that triggers, defaults, check constraints, etc. pose the
-      same type of risk.)  But functions in indexes pose extra danger
-      because they will be executed by routine maintenance operations
-      such as VACUUM FULL, which are commonly performed
-      automatically under a superuser account.  For example, a nefarious user
-      can execute code with superuser privileges by setting up a
-      trojan-horse index definition and waiting for the next routine vacuum.
-      The fix arranges for standard maintenance operations
-      (including VACUUM, ANALYZE, REINDEX,
-      and CLUSTER) to execute as the table owner rather than
-      the calling user, using the same privilege-switching mechanism already
-      used for SECURITY DEFINER functions.  To prevent bypassing
-      this security measure, execution of SET SESSION
-      AUTHORIZATION and SET ROLE is now forbidden within a
-      SECURITY DEFINER context.  (CVE-2007-6600)
-     
-    
-
-    
-     
-      Repair assorted bugs in the regular-expression package (Tom, Will Drewry)
-     
-
-     
-      Suitably crafted regular-expression patterns could cause crashes,
-      infinite or near-infinite looping, and/or massive memory consumption,
-      all of which pose denial-of-service hazards for applications that
-      accept regex search patterns from untrustworthy sources.
-      (CVE-2007-4769, CVE-2007-4772, CVE-2007-6067)
-     
-    
-
-    
-     
-      Require non-superusers who use /contrib/dblink to use only
-      password authentication, as a security measure (Joe)
-     
-
-     
-      The fix that appeared for this in 7.4.18 was incomplete, as it plugged
-      the hole for only some dblink functions.  (CVE-2007-6601,
-      CVE-2007-3278)
-     
-    
-
-    
-     
-      Fix planner failure in some cases of WHERE false AND var IN
-      (SELECT ...) (Tom)
-     
-    
-
-    
-     
-      Fix potential crash in translate() when using a multibyte
-      database encoding (Tom)
-     
-    
-
-    
-     
-      Fix PL/Python to not crash on long exception messages (Alvaro)
-     
-    
-
-    
-     
-      ecpg parser fixes (Michael)
-     
-    
-
-    
-     
-      Make contrib/tablefunc's crosstab() handle
-      NULL rowid as a category in its own right, rather than crashing (Joe)
-     
-    
-
-    
-     
-      Fix tsvector and tsquery output routines to
-      escape backslashes correctly (Teodor, Bruce)
-     
-    
-
-    
-     
-      Fix crash of to_tsvector() on huge input strings (Teodor)
-     
-    
-
-    
-     
-      Require a specific version of Autoconf to be used
-      when re-generating the configure script (Peter)
-     
-
-     
-      This affects developers and packagers only.  The change was made
-      to prevent accidental use of untested combinations of
-      Autoconf and PostgreSQL versions.
-      You can remove the version check if you really want to use a
-      different Autoconf version, but it's
-      your responsibility whether the result works or not.
-     
-    
-
-   
-
-  
-
-  Release 7.4.18
-
-  
-  Release date
-  2007-09-17
-  
-
-  
-   This release contains fixes from 7.4.17.
-   For information about new features in the 7.4 major release, see
-   .
-  
-
-  
-   Migration to Version 7.4.18
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Prevent index corruption when a transaction inserts rows and
-      then aborts close to the end of a concurrent VACUUM
-      on the same table (Tom)
-     
-    
-
-    
-     
-      Make CREATE DOMAIN ... DEFAULT NULL work properly (Tom)
-     
-    
-
-    
-     
-      Fix excessive logging of SSL error messages (Tom)
-     
-    
-
-    
-     
-      Fix crash when log_min_error_statement logging runs out
-      of memory (Tom)
-     
-    
-
-    
-     
-      Prevent CLUSTER from failing
-      due to attempting to process temporary tables of other sessions (Alvaro)
-     
-    
-
-    
-     
-      Require non-superusers who use /contrib/dblink to use only
-      password authentication, as a security measure (Joe)
-     
-    
-
-   
-
-  
-
-  Release 7.4.17
-
-  
-  Release date
-  2007-04-23
-  
-
-  
-   This release contains fixes from 7.4.16,
-   including a security fix.
-   For information about new features in the 7.4 major release, see
-   .
-  
-
-  
-   Migration to Version 7.4.17
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-    
-     Support explicit placement of the temporary-table schema within
-     search_path, and disable searching it for functions
-     and operators (Tom)
-    
-    
-     This is needed to allow a security-definer function to set a
-     truly secure value of search_path.  Without it,
-     an unprivileged SQL user can use temporary objects to execute code
-     with the privileges of the security-definer function (CVE-2007-2138).
-     See CREATE FUNCTION for more information.
-    
-    
-
-    
-    
-     /contrib/tsearch2 crash fixes (Teodor)
-    
-    
-
-    
-    
-     Fix potential-data-corruption bug in how VACUUM FULL handles
-     UPDATE chains (Tom, Pavan Deolasee)
-    
-    
-
-    
-    
-     Fix PANIC during enlargement of a hash index (bug introduced in 7.4.15)
-     (Tom)
-    
-    
-
-   
-
-  
-
-  Release 7.4.16
-
-  
-  Release date
-  2007-02-05
-  
-
-  
-   This release contains a variety of fixes from 7.4.15, including
-   a security fix.
-   For information about new features in the 7.4 major release, see
-   .
-  
-
-  
-   Migration to Version 7.4.16
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-    
-     Remove security vulnerability that allowed connected users
-     to read backend memory (Tom)
-    
-    
-     The vulnerability involves suppressing the normal check that a SQL
-     function returns the data type it's declared to, or 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.
-    
-    
-
-    
-    
-     Fix rare bug wherein btree index page splits could fail
-     due to choosing an infeasible split point (Heikki Linnakangas)
-    
-    
-
-    
-    
-     Fix for rare Assert() crash triggered by UNION (Tom)
-    
-    
-
-    
-    
-     Tighten security of multi-byte character processing for UTF8 sequences
-     over three bytes long (Tom)
-    
-    
-
-   
-
-  
-
-  Release 7.4.15
-
-  
-  Release date
-  2007-01-08
-  
-
-  
-   This release contains a variety of fixes from 7.4.14.
-   For information about new features in the 7.4 major release, see
-   .
-  
-
-  
-   Migration to Version 7.4.15
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Improve handling of getaddrinfo() on AIX (Tom)
-     
-
-     
-      This fixes a problem with starting the statistics collector,
-      among other things.
-     
-    
-
-     
-      
-       Fix failed to re-find parent key errors in
-       VACUUM (Tom)
-      
-     
-
-     
-      
-       Fix bugs affecting multi-gigabyte hash indexes (Tom)
-      
-     
-
-    
-     
-      Fix error when constructing an ARRAY[] made up of multiple
-      empty elements (Tom)
-     
-    
-
-    
-     
-      to_number() and to_char(numeric)
-      are now STABLE, not IMMUTABLE, for
-      new initdb installs (Tom)
-     
-
-     
-      This is because lc_numeric can potentially
-      change the output of these functions.
-     
-    
-
-    
-     
-      Improve index usage of regular expressions that use parentheses (Tom)
-     
-
-     
-      This improves psql \d performance also.
-     
-    
-
-   
-
-  
-
-  Release 7.4.14
-
-  
-  Release date
-  2006-10-16
-  
-
-  
-   This release contains a variety of fixes from 7.4.13.
-   For information about new features in the 7.4 major release, see
-   .
-  
-
-  
-   Migration to Version 7.4.14
-
-   
-    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.
-   
-
-  
-
-  
-   Changes
-
-
-Fix core dump when an untyped literal is taken as
-ANYARRAY
-Fix string_to_array() to handle overlapping
- matches for the separator string
-For example, string_to_array('123xx456xxx789', 'xx').
-
-Fix corner cases in pattern matching for
psql's \d commands
-Fix index-corrupting bugs in /contrib/ltree
- (Teodor)
-Fix backslash escaping in /contrib/dbmirror
-Adjust regression tests for recent changes in US DST laws
-
-
-  
-
-  Release 7.4.13
-
-  
-  Release date
-  2006-05-23
-  
-
-  
-   This release contains a variety of fixes from 7.4.12,
-   including patches for extremely serious security issues.
-   For information about new features in the 7.4 major release, see
-   .
-  
-
-  
-   Migration to Version 7.4.13
-
-   
-    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.
-   
-
-   
-    Full security against the SQL-injection attacks described in
-    CVE-2006-2313 and CVE-2006-2314 might require changes in application
-    code.  If you have applications that embed untrustworthy strings
-    into SQL commands, you should examine them as soon as possible to
-    ensure that they are using recommended escaping techniques.  In
-    most cases, applications should be using subroutines provided by
-    libraries or drivers (such as libpq's
-    PQescapeStringConn()) to perform string escaping,
-    rather than relying on ad hoc code to do it.
-   
-  
-
-  
-   Changes
-
-
-Change the server to reject invalidly-encoded multibyte
-characters in all cases (Tatsuo, Tom)
-While PostgreSQL has been moving in this direction for
-some time, the checks are now applied uniformly to all encodings and all
-textual input, and are now always errors not merely warnings.  This change
-defends against SQL-injection attacks of the type described in CVE-2006-2313.
-
-
-Reject unsafe uses of \' in string literals
-As a server-side defense against SQL-injection attacks of the type
-described in CVE-2006-2314, the server now only accepts '' and not
-\' as a representation of ASCII single quote in SQL string
-literals.  By default, \' is rejected only when
-client_encoding is set to a client-only encoding (SJIS, BIG5, GBK,
-GB18030, or UHC), which is the scenario in which SQL injection is possible.
-A new configuration parameter backslash_quote is available to
-adjust this behavior when needed.  Note that full security against
-CVE-2006-2314 might require client-side changes; the purpose of
-backslash_quote is in part to make it obvious that insecure
-clients are insecure.
-
-
-Modify libpq's string-escaping routines to be
-aware of encoding considerations and
-standard_conforming_strings
-This fixes libpq-using applications for the security
-issues described in CVE-2006-2313 and CVE-2006-2314, and also future-proofs
-them against the planned changeover to SQL-standard string literal syntax.
-Applications that use multiple PostgreSQL connections
-concurrently should migrate to PQescapeStringConn() and
-PQescapeByteaConn() to ensure that escaping is done correctly
-for the settings in use in each database connection.  Applications that
-do string escaping by hand should be modified to rely on library
-routines instead.
-
-
-Fix some incorrect encoding conversion functions
-win1251_to_iso, alt_to_iso,
-euc_tw_to_big5, euc_tw_to_mic,
-mic_to_euc_tw were all broken to varying
-extents.
-
-
-Clean up stray remaining uses of \' in strings
-(Bruce, Jan)
-
-Fix bug that sometimes caused OR'd index scans to
-miss rows they should have returned
-
-Fix WAL replay for case where a btree index has been
-truncated
-
-Fix SIMILAR TO for patterns involving
-| (Tom)
-
-Fix server to use custom DH SSL parameters correctly (Michael
-Fuhr)
-
-Fix for Bonjour on Intel Macs (Ashley Clark)
-
-Fix various minor memory leaks
-
-
-  
-
-  Release 7.4.12
-
-  
-  Release date
-  2006-02-14
-  
-
-  
-   This release contains a variety of fixes from 7.4.11.
-   For information about new features in the 7.4 major release, see
-   .
-  
-
-  
-   Migration to Version 7.4.12
-
-   
-    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.
-   
-  
-
-  
-   Changes
-
-
-
-Fix potential crash in SET
-SESSION AUTHORIZATION (CVE-2006-0553)
-An unprivileged user could crash the server process, resulting in
-momentary denial of service to other users, if the server has been compiled
-with Asserts enabled (which is not the default).
-Thanks to Akio Ishida for reporting this problem.
-
-
-Fix bug with row visibility logic in self-inserted
-rows (Tom)
-Under rare circumstances a row inserted by the current command
-could be seen as already valid, when it should not be.  Repairs bug
-created in 7.4.9 and 7.3.11 releases.
-
-
-Fix race condition that could lead to file already
-exists errors during pg_clog file creation
-(Tom)
-
-Properly check DOMAIN constraints for
-UNKNOWN parameters in prepared statements
-(Neil)
-
-Fix to allow restoring dumps that have cross-schema
-references to custom operators (Tom)
-
-Portability fix for testing presence of finite
-and isinf during configure (Tom)
-
-
-
-  
-
-  Release 7.4.11
-
-  
-  Release date
-  2006-01-09
-  
-
-  
-   This release contains a variety of fixes from 7.4.10.
-   For information about new features in the 7.4 major release, see
-   .
-  
-
-  
-   Migration to Version 7.4.11
-
-   
-    A dump/restore is not required for those running 7.4.X.  However,
-    if you are upgrading from a version earlier than 7.4.8, see the release
-    notes for 7.4.8.
-    Also, you might need to REINDEX indexes on textual
-    columns after updating, if you are affected by the locale or
-    plperl issues described below.
-   
-  
-
-  
-   Changes
-
-
-
-Fix for protocol-level Describe messages issued
-outside a transaction or in a failed transaction (Tom)
-
-Fix character string comparison for locales that consider
-different character combinations as equal, such as Hungarian (Tom)
-This might require REINDEX to fix existing indexes on
-textual columns.
-
-Set locale environment variables during postmaster startup
-to ensure that plperl won't change the locale later
-This fixes a problem that occurred if the postmaster was
-started with environment variables specifying a different locale than what
-initdb had been told.  Under these conditions, any use of
-plperl was likely to lead to corrupt indexes.  You might need
-REINDEX to fix existing indexes on
-textual columns if this has happened to you.
-
-Fix longstanding bug in strpos() and regular expression
-handling in certain rarely used Asian multi-byte character sets (Tatsuo)
-
-
-Fix bug in /contrib/pgcrypto gen_salt,
-which caused it not to use all available salt space for MD5 and
-XDES algorithms (Marko Kreen, Solar Designer)
-Salts for Blowfish and standard DES are unaffected.
-
-Fix /contrib/dblink to throw an error,
-rather than crashing, when the number of columns specified is different from
-what's actually returned by the query (Joe)
-
-
-
-  
-
-  Release 7.4.10
-
-  
-  Release date
-  2005-12-12
-  
-
-  
-   This release contains a variety of fixes from 7.4.9.
-   For information about new features in the 7.4 major release, see
-   .
-  
-
-  
-   Migration to Version 7.4.10
-
-   
-    A dump/restore is not required for those running 7.4.X.  However,
-    if you are upgrading from a version earlier than 7.4.8, see the release
-    notes for 7.4.8.
-   
-  
-
-  
-   Changes
-
-
-
-Fix race condition in transaction log management
-There was a narrow window in which an I/O operation could be initiated
-for the wrong page, leading to an Assert failure or data
-corruption.
-
-
-Prevent failure if client sends Bind protocol message
-when current transaction is already aborted
-
-/contrib/ltree fixes (Teodor)
-
-AIX and HPUX compile fixes (Tom)
-
-Fix longstanding planning error for outer joins
-This bug sometimes caused a bogus error RIGHT JOIN is
-only supported with merge-joinable join conditions.
-
-Prevent core dump in pg_autovacuum when a
-table has been dropped
-
-
-  
-
-  Release 7.4.9
-
-  
-  Release date
-  2005-10-04
-  
-
-  
-   This release contains a variety of fixes from 7.4.8.
-   For information about new features in the 7.4 major release, see
-   .
-  
-
-  
-   Migration to Version 7.4.9
-
-   
-    A dump/restore is not required for those running 7.4.X.  However,
-    if you are upgrading from a version earlier than 7.4.8, see the release
-    notes for 7.4.8.
-   
-  
-
-  
-   Changes
-
-
-Fix error that allowed VACUUM to remove
-ctid chains too soon, and add more checking in code that follows
-ctid links
-This fixes a long-standing problem that could cause crashes in very rare
-circumstances.
-Fix CHAR() to properly pad spaces to the specified
-length when using a multiple-byte character set (Yoshiyuki Asaba)
-In prior releases, the padding of CHAR() was incorrect
-because it only padded to the specified number of bytes without
-considering how many characters were stored.
-Fix the sense of the test for read-only transaction
-in COPY
-The code formerly prohibited COPY TO, where it should
-prohibit COPY FROM.
-
-Fix planning problem with outer-join ON clauses that reference
-only the inner-side relation
-Further fixes for x FULL JOIN y ON true corner
-cases
-Make array_in and array_recv more
-paranoid about validating their OID parameter
-Fix missing rows in queries like UPDATE a=... WHERE
-a... with GiST index on column a
-Improve robustness of datetime parsing
-Improve checking for partially-written WAL
-pages
-Improve robustness of signal handling when SSL is
-enabled
-Don't try to open more than max_files_per_process
-files during postmaster startup
-Various memory leakage fixes
-Various portability improvements
-Fix PL/PgSQL to handle var := var correctly when
-the variable is of pass-by-reference type
-Update contrib/tsearch2 to use current Snowball
-code
-
-
-  
-
-  Release 7.4.8
-
-  
-  Release date
-  2005-05-09
-  
-
-  
-   This release contains a variety of fixes from 7.4.7, including several
-   security-related issues.
-   For information about new features in the 7.4 major release, see
-   .
-  
-
-  
-   Migration to Version 7.4.8
-
-   
-    A dump/restore is not required for those running 7.4.X.  However,
-    it is one possible way of handling two significant security problems
-    that have been found in the initial contents of 7.4.X system
-    catalogs.  A dump/initdb/reload sequence using 7.4.8's initdb will
-    automatically correct these problems.
-   
-
-   
-    The larger 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.)
-   
-
-   
-    The lesser problem is that the contrib/tsearch2 module
-    creates several functions that are misdeclared to return
-    internal when they do not accept internal arguments.
-    This breaks type safety for all functions using internal
-    arguments.
-   
-
-   
-    It is strongly recommended that all installations repair these errors,
-    either by initdb or by following the manual repair procedures given
-    below.  The errors at least allow unprivileged database users to crash
-    their server process, and might allow unprivileged users to gain the
-    privileges of a database superuser.
-   
-
-   
-    If you wish not to do an initdb, perform the following procedures instead.
-    As the database superuser, do:
-
-
-BEGIN;
-UPDATE pg_proc SET proargtypes[3] = 'internal'::regtype
-WHERE pronamespace = 11 AND pronargs = 5
-     AND proargtypes[2] = 'cstring'::regtype;
--- The command should report having updated 90 rows;
--- if not, rollback and investigate instead of committing!
-COMMIT;
-
-
-    Next, if you have installed contrib/tsearch2, do:
-
-
-BEGIN;
-UPDATE pg_proc SET proargtypes[0] = 'internal'::regtype
-WHERE oid IN (
-   'dex_init(text)'::regprocedure,
-   'snb_en_init(text)'::regprocedure,
-   'snb_ru_init(text)'::regprocedure,
-   'spell_init(text)'::regprocedure,
-   'syn_init(text)'::regprocedure
-);
--- The command should report having updated 5 rows;
--- if not, rollback and investigate instead of committing!
-COMMIT;
-
-
-    If this command fails with a message like function
-    "dex_init(text)" does not exist, then either tsearch2
-    is not installed in this database, or you already did the update.
-   
-
-   
-    The above procedures must be carried out in each database
-    of an installation, including template1, and ideally
-    including template0 as well.  If you do not fix the
-    template databases then any subsequently created databases will contain
-    the same errors.  template1 can be fixed in the same way
-    as any other database, but fixing template0 requires
-    additional steps.  First, from any database issue:
-
-UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
-
-     Next connect to template0 and perform the above repair
-     procedures.  Finally, do:
-
--- re-freeze template0:
-VACUUM FREEZE;
--- and protect it against future alterations:
-UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';
-
-   
-  
-
-  
-   Changes
-
-
-Change encoding function signature to prevent
-misuse
-Change contrib/tsearch2 to avoid unsafe use of
-INTERNAL function results
-Repair ancient race condition that allowed a transaction to be
-seen as committed for some purposes (eg SELECT FOR UPDATE) slightly sooner
-than for other purposes
-This is an extremely serious bug since it could lead to apparent
-data inconsistencies being briefly visible to applications.
-Repair race condition between relation extension and
-VACUUM
-This could theoretically have caused loss of a page's worth of
-freshly-inserted data, although the scenario seems of very low probability.
-There are no known cases of it having caused more than an Assert failure.
-
-Fix comparisons of TIME WITH TIME ZONE values
-
-The comparison code was wrong in the case where the
---enable-integer-datetimes configuration switch had been used.
-NOTE: if you have an index on a TIME WITH TIME ZONE column,
-it will need to be REINDEXed after installing this update, because
-the fix corrects the sort order of column values.
-
-Fix EXTRACT(EPOCH) for
-TIME WITH TIME ZONE values
-Fix mis-display of negative fractional seconds in
-INTERVAL values
-
-This error only occurred when the
---enable-integer-datetimes configuration switch had been used.
-
-Ensure operations done during backend shutdown are counted by
-statistics collector
-
-This is expected to resolve reports of pg_autovacuum
-not vacuuming the system catalogs often enough — it was not being
-told about catalog deletions caused by temporary table removal during
-backend exit.
-
-Additional buffer overrun checks in plpgsql
-(Neil)
-Fix pg_dump to dump trigger names containing %
-correctly (Neil)
-Fix contrib/pgcrypto for newer OpenSSL builds
-(Marko Kreen)
-Still more 64-bit fixes for
-contrib/intagg
-Prevent incorrect optimization of functions returning
-RECORD
-Prevent to_char(interval) from dumping core for
-month-related formats
-Prevent crash on COALESCE(NULL,NULL)
-Fix array_map to call PL functions correctly
-Fix permission checking in ALTER DATABASE RENAME
-Fix ALTER LANGUAGE RENAME
-Make RemoveFromWaitQueue clean up after itself
-
-This fixes a lock management error that would only be visible if a transaction
-was kicked out of a wait for a lock (typically by query cancel) and then the
-holder of the lock released it within a very narrow window.
-
-Fix problem with untyped parameter appearing in
-INSERT ... SELECT
-Fix CLUSTER failure after
-ALTER TABLE SET WITHOUT OIDS
-
-
-  
-
-  Release 7.4.7
-
-  
-  Release date
-  2005-01-31
-  
-
-  
-   This release contains a variety of fixes from 7.4.6, including several
-   security-related issues.
-   For information about new features in the 7.4 major release, see
-   .
-  
-
-  
-   Migration to Version 7.4.7
-
-   
-    A dump/restore is not required for those running 7.4.X.
-   
-  
-
-  
-   Changes
-
-
-Disallow LOAD to non-superusers
-
-On platforms that will automatically execute initialization functions of a
-shared library (this includes at least Windows and ELF-based Unixen),
-LOAD can be used to make the server execute arbitrary code.
-Thanks to NGS Software for reporting this.
-Check that creator of an aggregate function has the right to
-execute the specified transition functions
-
-This oversight made it possible to bypass denial of EXECUTE
-permission on a function.
-Fix security and 64-bit issues in
-contrib/intagg
-Add needed STRICT marking to some contrib functions (Kris
-Jurka)
-Avoid buffer overrun when plpgsql cursor declaration has too
-many parameters (Neil)
-Fix planning error for FULL and RIGHT outer joins
-
-The result of the join was mistakenly supposed to be sorted the same as the
-left input.  This could not only deliver mis-sorted output to the user, but
-in case of nested merge joins could give outright wrong answers.
-
-Fix plperl for quote marks in tuple fields
-Fix display of negative intervals in SQL and GERMAN
-datestyles
-Make age(timestamptz) do calculation in local timezone not
-GMT
-
-
-  
-
-  Release 7.4.6
-
-  
-  Release date
-  2004-10-22
-  
-
-  
-   This release contains a variety of fixes from 7.4.5.
-   For information about new features in the 7.4 major release, see
-   .
-  
-
-
-  
-   Migration to Version 7.4.6
-
-   
-    A dump/restore is not required for those running 7.4.X.
-   
-  
-
-  
-   Changes
-
-
-Repair possible failure to update hint bits on disk
-
-Under rare circumstances this oversight could lead to
-could not access transaction status failures, which qualifies
-it as a potential-data-loss bug.
-
-Ensure that hashed outer join does not miss tuples
-
-Very large left joins using a hash join plan could fail to output unmatched
-left-side rows given just the right data distribution.
-
-Disallow running pg_ctl as root
-
-This is to guard against any possible security issues.
-
-Avoid using temp files in /tmp in make_oidjoins_check
-
-This has been reported as a security issue, though it's hardly worthy of
-concern since there is no reason for non-developers to use this script anyway.
-
-Prevent forced backend shutdown from re-emitting prior command
-result
-
-In rare cases, a client might think that its last command had succeeded when
-it really had been aborted by forced database shutdown.
-
-Repair bug in pg_stat_get_backend_idset
-
-This could lead to misbehavior in some of the system-statistics views.
-
-Fix small memory leak in postmaster
-Fix expected both swapped tables to have TOAST
-tables bug
-
-This could arise in cases such as CLUSTER after ALTER TABLE DROP COLUMN.
-
-Prevent pg_ctl restart from adding -D multiple times
-Fix problem with NULL values in GiST indexes
-:: is no longer interpreted as a variable in an
-ECPG prepare statement
-
-
-  
-
-  Release 7.4.5
-
-  
-  Release date
-  2004-08-18
-  
-
-  
-   This release contains one serious bug fix over 7.4.4.
-   For information about new features in the 7.4 major release, see
-   .
-  
-
-
-  
-   Migration to Version 7.4.5
-
-   
-    A dump/restore is not required for those running 7.4.X.
-   
-  
-
-  
-   Changes
-
-
-Repair possible crash during concurrent B-tree index insertions
-
-This patch fixes a rare case in which concurrent insertions into a B-tree index
-could result in a server panic.  No permanent damage would result, but it's
-still worth a re-release.  The bug does not exist in pre-7.4 releases.
-
-
-
-  
-
-  Release 7.4.4
-
-  
-  Release date
-  2004-08-16
-  
-
-  
-   This release contains a variety of fixes from 7.4.3.
-   For information about new features in the 7.4 major release, see
-   .
-  
-
-
-  
-   Migration to Version 7.4.4
-
-   
-    A dump/restore is not required for those running 7.4.X.
-   
-  
-
-  
-   Changes
-
-
-Prevent possible loss of committed transactions during crash
-
-Due to insufficient interlocking between transaction commit and checkpointing,
-it was possible for transactions committed just before the most recent
-checkpoint to be lost, in whole or in part, following a database crash and
-restart.  This is a serious bug that has existed
-since PostgreSQL 7.1.
-
-Check HAVING restriction before evaluating result list of an
-aggregate plan
-Avoid crash when session's current user ID is deleted
-Fix hashed crosstab for zero-rows case (Joe)
-Force cache update after renaming a column in a foreign key
-Pretty-print UNION queries correctly
-Make psql handle \r\n newlines properly in COPY IN
-pg_dump handled ACLs with grant options incorrectly
-Fix thread support for OS X and Solaris
-Updated JDBC driver (build 215) with various fixes
-ECPG fixes
-Translation updates (various contributors)
-
-
-  
-
-  Release 7.4.3
-
-  
-  Release date
-  2004-06-14
-  
-
-  
-   This release contains a variety of fixes from 7.4.2.
-   For information about new features in the 7.4 major release, see
-   .
-  
-
-
-  
-   Migration to Version 7.4.3
-
-   
-    A dump/restore is not required for those running 7.4.X.
-   
-  
-
-  
-   Changes
-
-
-Fix temporary memory leak when using non-hashed aggregates (Tom)
-ECPG fixes, including some for Informix compatibility (Michael)
-Fixes for compiling with thread-safety, particularly Solaris (Bruce)
-Fix error in COPY IN termination when using the old network protocol (ljb)
-Several important fixes in pg_autovacuum, including fixes for
-large tables, unsigned oids, stability, temp tables, and debug mode
-(Matthew T. O'Connor)
-Fix problem with reading tar-format dumps on NetBSD and BSD/OS (Bruce)
-Several JDBC fixes
-Fix ALTER SEQUENCE RESTART where last_value equals the restart value (Tom)
-Repair failure to recalculate nested sub-selects (Tom)
-Fix problems with non-constant expressions in LIMIT/OFFSET
-Support FULL JOIN with no join clause, such as X FULL JOIN Y ON TRUE (Tom)
-Fix another zero-column table bug (Tom)
-Improve handling of non-qualified identifiers in GROUP BY clauses in sub-selects (Tom)
-
-Select-list aliases within the sub-select will now take precedence over
-names from outer query levels.
-
-Do not generate NATURAL CROSS JOIN when decompiling rules (Tom)
-Add checks for invalid field length in binary COPY (Tom)
-
- This fixes a difficult-to-exploit security hole.
-
-Avoid locking conflict between ANALYZE and LISTEN/NOTIFY
-Numerous translation updates (various contributors)
-
-
-  
-
-  Release 7.4.2
-
-  
-  Release date
-  2004-03-08
-  
-
-  
-   This release contains a variety of fixes from 7.4.1.
-   For information about new features in the 7.4 major release, see
-   .
-  
-
-
-  
-   Migration to Version 7.4.2
-
-   
-    A dump/restore is not required for those running 7.4.X.  However,
-    it might 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.
-   
-
-   
-    The more severe of the two errors is that data type anyarray
-    has the wrong alignment label; this is a problem because the
-    pg_statistic system catalog uses anyarray
-    columns.  The mislabeling can cause planner misestimations and even
-    crashes when planning queries that involve WHERE clauses on
-    double-aligned columns (such as float8 and timestamp).
-    It is strongly recommended that all installations repair this error,
-    either by initdb or by following the manual repair procedure given
-    below.
-   
-
-   
-    The lesser error is that the system view pg_settings
-    ought to be marked as having public update access, to allow
-    UPDATE pg_settings to be used as a substitute for
-    SET.  This can also be fixed either by initdb or manually,
-    but it is not necessary to fix unless you want to use UPDATE
-    pg_settings.
-   
-
-   
-    If you wish not to do an initdb, the following procedure will work
-    for fixing pg_statistic.  As the database superuser,
-    do:
-
-
--- 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;
-
-
-    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 pg_statistic.
-   
-
-   
-    To repair the pg_settings error, simply do:
-
-GRANT SELECT, UPDATE ON pg_settings TO PUBLIC;
-
-   
-
-   
-    The above procedures must be carried out in each database
-    of an installation, including template1, and ideally
-    including template0 as well.  If you do not fix the
-    template databases then any subsequently created databases will contain
-    the same errors.  template1 can be fixed in the same way
-    as any other database, but fixing template0 requires
-    additional steps.  First, from any database issue:
-
-UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
-
-     Next connect to template0 and perform the above repair
-     procedures.  Finally, do:
-
--- re-freeze template0:
-VACUUM FREEZE;
--- and protect it against future alterations:
-UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';
-
-   
-  
-
-  
-   Changes
-
-
-   Release 7.4.2 incorporates all the fixes included in release 7.3.6,
-   plus the following fixes:
-
-
-
-Fix pg_statistics alignment bug that could crash optimizer
-See above for details about this problem.
-Allow non-super users to update pg_settings
-Fix several optimizer bugs, most of which led to
-variable not found in subplan target lists errors
-Avoid out-of-memory failure during startup of large multiple
-index scan
-Fix multibyte problem that could lead to out of
-memory error during COPY IN
-Fix problems with SELECT INTO / CREATE
-TABLE AS from tables without OIDs
-Fix problems with alter_table regression test
-during parallel testing
-Fix problems with hitting open file limit, especially on OS X (Tom)
-Partial fix for Turkish-locale issues
-initdb will succeed now in Turkish locale, but there are still some
-inconveniences associated with the i/I problem.
-Make pg_dump set client encoding on restore
-Other minor pg_dump fixes
-Allow ecpg to again use C keywords as column names (Michael)
-Added ecpg WHENEVER NOT_FOUND to
-SELECT/INSERT/UPDATE/DELETE (Michael)
-Fix ecpg crash for queries calling set-returning functions (Michael)
-Various other ecpg fixes (Michael)
-Fixes for Borland compiler
-Thread build improvements (Bruce)
-Various other build fixes
-Various JDBC fixes
-
-
-  
-
-  Release 7.4.1
-
-  
-  Release date
-  2003-12-22
-  
-
-  
-   This release contains a variety of fixes from 7.4.
-   For information about new features in the 7.4 major release, see
-   .
-  
-
-
-  
-   Migration to Version 7.4.1
-
-   
-    A dump/restore is not required for those
-    running 7.4.
-   
-
-   
-    If you want to install the fixes in the information schema
-    you need to reload it into the database.
-    This is either accomplished by initializing a new cluster
-    by running initdb, or by running the following
-    sequence of SQL commands in each database (ideally including
-    template1) as a superuser in
-    psql, after installing the new release:
-
-DROP SCHEMA information_schema CASCADE;
-\i /usr/local/pgsql/share/information_schema.sql
-
-    Substitute your installation path in the second command.
-   
-
-  
-
-  
-   Changes
-
-
-Fixed bug in CREATE SCHEMA parsing in ECPG (Michael)
-Fix compile error when  and  are used together (Peter)
-Fix for subqueries that used hash joins (Tom)
-
-   Certain subqueries that used hash joins would crash because of
-   improperly shared structures.
-
-Fix free space map compaction bug (Tom)
-
-   This fixes a bug where compaction of the free space map could lead
-   to a database server shutdown.
-
-
-Fix for Borland compiler build of libpq (Bruce)
-Fix netmask() and hostmask() to return the maximum-length masklen (Tom)
-
-   Fix these functions to return values consistent with pre-7.4
-   releases.
-
-
-Several contrib/pg_autovacuum fixes
-
-   Fixes include improper variable initialization, missing vacuum after
-   TRUNCATE, and duration computation overflow for long vacuums.
-
-
-Allow compile of contrib/cube under Cygwin (Jason Tishler)
-Fix Solaris use of password file when no passwords are defined (Tom)
-
-   Fix crash on Solaris caused by use of any type of password
-   authentication when no passwords were defined.
-
-
-JDBC fix for thread problems, other fixes
-Fix for bytea index lookups (Joe)
-Fix information schema for bit data types (Peter)
-Force zero_damaged_pages to be on during recovery from WAL
-Prevent some obscure cases of variable not in subplan target lists
-Make PQescapeBytea and byteaout consistent with each other (Joe)
-Escape bytea output for bytes > 0x7e(Joe)
-
- If different client encodings are used for bytea output and input, it
- is possible for bytea values to be corrupted by the differing
- encodings.  This fix escapes all bytes that might be affected.
-
-
-Added missing SPI_finish() calls to dblink's get_tuple_of_interest() (Joe)
-New Czech FAQ
-Fix information schema view constraint_column_usage for foreign keys (Peter)
-ECPG fixes (Michael)
-Fix bug with multiple IN subqueries and joins in the subqueries (Tom)
-Allow COUNT('x') to work (Tom)
-Install ECPG include files for Informix compatibility into separate directory (Peter)
-
- Some names of ECPG include files for Informix compatibility conflicted with operating system include files.
- By installing them in their own directory, name conflicts have been reduced.
-
-
-Fix SSL memory leak (Neil)
-
- This release fixes a bug in 7.4 where SSL didn't free all memory it allocated.
-
-
-Prevent pg_service.conf from using service name as default dbname (Bruce)
-Fix local ident authentication on FreeBSD (Tom)
-
-
-
-
-
Release 7.4
-
-  Release date
-  2003-11-17
-
-  Overview
-
-  
-   Major changes in this release:
-  
-
-  
-   
-    
-     IN / NOT IN subqueries are
-     now much more efficient
-    
-
-    
-     
-      In previous releases, IN/NOT
-      IN subqueries were joined to the upper query by
-      sequentially scanning the subquery looking for a match.  The
-      7.4 code uses the same sophisticated techniques used by
-      ordinary joins and so is much faster.  An
-      IN will now usually be as fast as or faster
-      than an equivalent EXISTS subquery; this
-      reverses the conventional wisdom that applied to previous
-      releases.
-     
-    
-   
-
-   
-    
-     Improved GROUP BY processing by using hash buckets
-    
-
-    
-     
-      In previous releases, rows to be grouped had to be sorted
-      first.  The 7.4 code can do GROUP BY
-      without sorting, by accumulating results into a hash table
-      with one entry per group.  It will still use the sort
-      technique, however, if the hash table is estimated to be too
-      large to fit in sort_mem.
-     
-    
-   
-
-   
-    
-     New multikey hash join capability
-    
-
-    
-     
-      In previous releases, hash joins could only occur on single
-      keys.  This release allows multicolumn hash joins.
-     
-    
-   
-
-   
-    
-     Queries using the explicit JOIN syntax are
-     now better optimized
-    
-
-    
-     
-      Prior releases evaluated queries using the explicit
-      JOIN syntax only in the order implied by
-      the syntax. 7.4 allows full optimization of these queries,
-      meaning the optimizer considers all possible join orderings
-      and chooses the most efficient.  Outer joins, however, must
-      still follow the declared ordering.
-     
-    
-   
-
-   
-    
-     Faster and more powerful regular expression code
-    
-
-    
-     
-      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.
-     
-    
-   
-
-   
-    
-     Function-inlining for simple SQL functions
-    
-
-    
-     
-      Simple SQL functions can now be inlined by including their SQL
-      in the main query.  This improves performance by eliminating
-      per-call overhead.  That means simple SQL functions now
-      behave like macros.
-     
-    
-   
-
-   
-    
-     Full support for IPv6 connections and IPv6 address data types
-    
-
-    
-     
-      Previous releases allowed only IPv4 connections, and the IP
-      data types only supported IPv4 addresses. This release adds
-      full IPv6 support in both of these areas.
-     
-    
-   
-
-   
-    
-     Major improvements in SSL performance and reliability
-    
-
-    
-     
-      Several people very familiar with the SSL API have overhauled
-      our SSL code to improve SSL key negotiation and error
-      recovery.
-     
-    
-   
-
-   
-    
-     Make free space map efficiently reuse empty index pages,
-     and other free space management improvements
-    
-
-    
-     
-      In previous releases, B-tree index pages that were left empty
-      because of deleted rows could only be reused by rows with
-      index values similar to the rows originally indexed on that
-      page. In 7.4, VACUUM records empty index
-      pages and allows them to be reused for any future index rows.
-     
-    
-   
-
-   
-    
-     SQL-standard information schema
-    
-
-    
-     
-      The information schema provides a standardized and stable way
-      to access information about the schema objects defined in a
-      database.
-     
-    
-   
-
-   
-    
-     Cursors conform more closely to the SQL standard
-    
-
-    
-     
-      The commands FETCH and
-      MOVE have been overhauled to conform more
-      closely to the SQL standard.
-     
-    
-   
-
-   
-    
-     Cursors can exist outside transactions
-    
-
-    
-     
-      These cursors are also called holdable cursors.
-     
-    
-   
-
-   
-    
-     New client-to-server protocol
-    
-
-    
-     
-      The new protocol adds error codes, more status information,
-      faster startup, better support for binary data transmission,
-      parameter values separated from SQL commands, prepared
-      statements available at the protocol level, and cleaner
-      recovery from COPY failures.  The older
-      protocol is still supported by both server and clients.
-     
-    
-   
-
-   
-    
-     libpq and
-     ECPG applications are now fully
-     thread-safe
-    
-
-    
-     
-      While previous libpq releases
-      already supported threads, this release improves thread safety
-      by fixing some non-thread-safe code that was used during
-      database connection startup.  The configure
-      option  must be used to
-      enable this feature.
-     
-    
-   
-
-   
-    
-     New version of full-text indexing
-    
-
-    
-     
-      A new full-text indexing suite is available in
-      contrib/tsearch2.
-     
-    
-   
-
-   
-    
-     New autovacuum tool
-    
-
-    
-     
-      The new autovacuum tool in
-      contrib/autovacuum monitors the database
-      statistics tables for
-      INSERT/UPDATE/DELETE
-      activity and automatically vacuums tables when needed.
-     
-    
-   
-
-   
-    
-     Array handling has been improved and moved into the server core
-    
-
-    
-     
-      Many array limitations have been removed, and arrays behave
-      more like fully-supported data types.
-     
-    
-   
-
-  
-
-  Migration to Version 7.4
-
-  
-   A dump/restore using pg_dump is
-   required for those wishing to migrate data from any previous
-   release.
-  
-
-  
-   Observe the following incompatibilities:
-  
-
-  
-   
-    
-     The server-side autocommit setting was removed and
-     reimplemented in client applications and languages.
-     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 APIs as appropriate.
-    
-   
-
-   
-    
-     Error message wording has changed substantially in this
-     release.  Significant effort was invested to make the messages
-     more consistent and user-oriented.  If your applications try to
-     detect different error conditions by parsing the error message,
-     you are strongly encouraged to use the new error code facility instead.
-    
-   
-
-   
-    
-     Inner joins using the explicit JOIN syntax
-     might behave differently because they are now better
-     optimized.
-    
-   
-
-   
-    
-     A number of server configuration parameters have been renamed
-     for clarity, primarily those related to
-     logging.
-    
-   
-
-   
-    
-     FETCH 0 or MOVE 0 now
-     does nothing.  In prior releases, FETCH 0
-     would fetch all remaining rows, and MOVE 0
-     would move to the end of the cursor.
-    
-   
-
-   
-    
-     FETCH and MOVE now return
-     the actual number of rows fetched/moved, or zero if at the
-     beginning/end of the cursor.  Prior releases would return the
-     row count passed to the command, not the number of rows
-     actually fetched or moved.
-    
-   
-
-   
-    
-     COPY now can process files that use
-     carriage-return or carriage-return/line-feed end-of-line
-     sequences. Literal carriage-returns and line-feeds are no
-     longer accepted in data values; use \r and
-     \n instead.
-    
-   
-
-   
-    
-     Trailing spaces are now trimmed when converting from type
-     char(n) to
-     varchar(n) or text.
-     This is what most people always expected to happen anyway.
-    
-   
-
-   
-    
-     The data type float(p) now
-     measures p in binary digits, not decimal
-     digits.  The new behavior follows the SQL standard.
-    
-   
-
-   
-    
-     Ambiguous date values now must match the ordering specified by
-     the datestyle setting.  In prior releases, a
-     date specification of 10/20/03 was interpreted as a
-     date in October even if datestyle specified that
-     the day should be first.  7.4 will throw an error if a date
-     specification is invalid for the current setting of
-     datestyle.
-    
-   
-
-   
-    
-     The functions oidrand,
-     oidsrand, and
-     userfntest have been removed.  These
-     functions were determined to be no longer useful.
-    
-   
-
-   
-    
-     String literals specifying time-varying date/time values, such
-     as 'now' or 'today' will
-     no longer work as expected in column default expressions; they
-     now cause the time of the table creation to be the default, not
-     the time of the insertion.  Functions such as
-     now(), current_timestamp, or
-     current_date should be used instead.
-    
-
-    
-     In previous releases, there was special code so that strings
-     such as 'now' were 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 functions such
-     as now() or current_timestamp. These
-     will work in all situations.
-    
-   
-
-   
-    
-     The dollar sign ($) is no longer allowed in
-     operator names.  It can instead be a non-first character in
-     identifiers.  This was done to improve compatibility with other
-     database systems, and to avoid syntax problems when parameter
-     placeholders ($n) are written
-     adjacent to operators.
-    
-   
-
-  
-
-  Changes
-
-  
-   Below you will find a detailed account of the changes between
-   release 7.4 and the previous major release.
-  
-
-  Server Operation Changes
-
-  
-   
-    
-     Allow IPv6 server connections (Nigel Kukard, Johan Jordaan,
-     Bruce, Tom, Kurt Roeckx, Andrew Dunstan)
-    
-   
-
-   
-    
-     Fix SSL to handle errors cleanly (Nathan Mueller)
-    
-    
-     In prior releases, certain SSL API error reports were not
-     handled correctly.  This release fixes those problems.
-    
-   
-
-   
-    
-     SSL protocol security and performance improvements (Sean Chittenden)
-    
-    
-     SSL key renegotiation was happening too frequently, causing poor
-     SSL performance.  Also, initial key handling was improved.
-    
-   
-
-   
-    
-     Print lock information when a deadlock is detected (Tom)
-    
-    
-     This allows easier debugging of deadlock situations.
-    
-   
-
-   
-    
-     Update /tmp socket modification times
-     regularly to avoid their removal (Tom)
-    
-    
-     This should help prevent /tmp directory
-     cleaner administration scripts from removing server socket
-     files.
-    
-   
-
-   Enable PAM for Mac OS X (Aaron Hillegass)
-
-   
-    Make B-tree indexes fully WAL-safe (Tom)
-    
-     In prior releases, under certain rare cases, a server crash
-     could cause B-tree indexes to become corrupt. This release
-     removes those last few rare cases.
-    
-   
-
-   Allow B-tree index compaction and empty page reuse (Tom)
-
-   
-    
-     Fix inconsistent index lookups during split of first root page (Tom)
-    
-    
-     In prior releases, when a single-page index split into two
-     pages, there was a brief period when another database session
-     could miss seeing an index entry.  This release fixes that rare
-     failure case.
-    
-   
-
-   Improve free space map allocation logic (Tom)
-
-   
-    Preserve free space information between server restarts (Tom)
-    
-     In prior releases, the free space map was not saved when the
-     postmaster was stopped, so newly started servers had no free
-     space information. This release saves the free space map, and
-     reloads it when the server is restarted.
-    
-   
-
-   Add start time to pg_stat_activity (Neil)
-   New code to detect corrupt disk pages; erase with zero_damaged_pages (Tom)
-   New client/server protocol: faster, no username length limit, allow clean exit from COPY (Tom)
-   Add transaction status, table ID, column ID to client/server protocol (Tom)
-   Add binary I/O to client/server protocol (Tom)
-   Remove autocommit server setting; move to client applications (Tom)
-   New error message wording, error codes, and three levels of error detail (Tom, Joe, Peter)
-  
-
-  Performance Improvements
-
-  
-   Add hashing for GROUP BY aggregates (Tom)
-   Make nested-loop joins be smarter about multicolumn indexes (Tom)
-   Allow multikey hash joins (Tom)
-   Improve constant folding (Tom)
-   Add ability to inline simple SQL functions (Tom)
-
-   
-    Reduce memory usage for queries using complex functions (Tom)
-    
-     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.
-    
-   
-
-   
-    Improve GEQO optimizer performance (Tom)
-    
-     This release fixes several inefficiencies in the way the GEQO optimizer
-     manages potential query paths.
-    
-   
-
-   
-    
-     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)
-    
-   
-
-   
-    
-     Pattern matching operations can use indexes regardless of
-     locale (Peter)
-    
-    
-     There is no way for non-ASCII locales to use the standard
-     indexes for LIKE comparisons. This release
-     adds a way to create a special index for
-     LIKE.
-    
-   
-
-   
-    Allow the postmaster to preload libraries using preload_libraries (Joe)
-    
-     For shared libraries that require a long time to load, this
-     option is available so the library can be preloaded in the
-     postmaster and inherited by all database sessions.
-    
-   
-
-   
-    
-     Improve optimizer cost computations, particularly for subqueries (Tom)
-    
-   
-
-   
-    
-     Avoid sort when subquery ORDER BY matches upper query (Tom)
-    
-   
-
-   
-    
-     Deduce that WHERE a.x = b.y AND b.y = 42 also
-     means a.x = 42 (Tom)
-    
-   
-
-   
-    
-     Allow hash/merge joins on complex joins (Tom)
-    
-   
-
-   
-    
-     Allow hash joins for more data types (Tom)
-    
-   
-
-   
-    
-     Allow join optimization of explicit inner joins, disable with
-     join_collapse_limit (Tom)
-    
-   
-
-   
-    
-     Add parameter from_collapse_limit to control
-     conversion of subqueries to joins (Tom)
-    
-   
-
-   
-    
-     Use faster and more powerful regular expression code from Tcl
-     (Henry Spencer, Tom)
-    
-   
-
-   
-    
-     Use bit-mapped relation sets in the optimizer (Tom)
-    
-   
-
-   
-    Improve connection startup time (Tom)
-    
-     The new client/server protocol requires fewer network packets to
-     start a database session.
-    
-   
-
-   
-    
-     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)
-    
-     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 B-tree and hash index performance.
-    
-   
-
-   
-    Align shared buffers on 32-byte boundary for copy speed improvement (Manfred Spraul)
-    
-     Certain CPU's perform faster data copies when addresses are
-     32-byte aligned.
-    
-   
-
-   
-    Data type numeric reimplemented for better performance (Tom)
-    
-     numeric used to be stored in base 100. The new code
-     uses base 10000, for significantly better performance.
-    
-   
-  
-
-  Server Configuration Changes
-
-  
-   
-    Rename server parameter server_min_messages to log_min_messages (Bruce)
-    
-     This was done so most parameters that control the server logs
-     begin with log_.
-    
-   
-
-   Rename show_*_stats to log_*_stats (Bruce)
-   Rename show_source_port to log_source_port (Bruce)
-   Rename hostname_lookup to log_hostname (Bruce)
-
-   
-    Add checkpoint_warning to warn of excessive checkpointing (Bruce)
-    
-     In prior releases, it was difficult to determine if checkpoint
-     was happening too frequently. This feature adds a warning to the
-     server logs when excessive checkpointing happens.
-    
-   
-
-   New read-only server parameters for localization (Tom)
-
-   
-    
-     Change debug server log messages to output as DEBUG
-     rather than LOG (Bruce)
-    
-   
-
-   
-    Prevent server log variables from being turned off by non-superusers (Bruce)
-    
-     This is a security feature so non-superusers cannot disable
-     logging that was enabled by the administrator.
-    
-   
-
-   
-    
-     log_min_messages/client_min_messages now
-     controls debug_* output (Bruce)
-    
-    
-     This centralizes client debug information so all debug output
-     can be sent to either the client or server logs.
-    
-   
-
-   
-    Add Mac OS X Rendezvous server support (Chris Campbell)
-    
-     This allows Mac OS X hosts to query the network for available
-     PostgreSQL servers.
-    
-   
-
-   
-    
-     Add ability to print only slow statements using
-     log_min_duration_statement
-     (Christopher)
-    
-    
-     This is an often requested debugging feature that allows
-     administrators to see only slow queries in their server logs.
-    
-   
-
-   
-    Allow pg_hba.conf to accept netmasks in CIDR format (Andrew Dunstan)
-    
-     This allows administrators to merge the host IP address and
-     netmask fields into a single CIDR field in pg_hba.conf.
-    
-   
-
-   New read-only parameter is_superuser (Tom)
-
-   
-    New parameter log_error_verbosity to control error detail (Tom)
-    
-     This works with the new error reporting feature to supply
-     additional error information like hints, file names and line
-     numbers.
-    
-   
-
-   
-    postgres --describe-config now dumps server config variables (Aizaz Ahmed, Peter)
-    
-     This option is useful for administration tools that need to know
-     the configuration variable names and their minimums, maximums,
-     defaults, and descriptions.
-    
-   
-
-   
-    
-     Add new columns in pg_settings:
-     context, type, source,
-     min_val, max_val (Joe)
-    
-   
-
-   
-    
-     Make default shared_buffers 1000 and
-     max_connections 100, if possible (Tom)
-    
-    
-     Prior versions defaulted to 64 shared buffers so PostgreSQL
-     would start on even very old systems. This release tests the
-     amount of shared memory allowed by the platform and selects more
-     reasonable default values if possible.  Of course, users are
-     still encouraged to evaluate their resource load and size
-     shared_buffers accordingly.
-    
-   
-
-   
-    
-     New pg_hba.conf record type
-     hostnossl to prevent SSL connections (Jon
-     Jensen)
-    
-    
-     In prior releases, there was no way to prevent SSL connections
-     if both the client and server supported SSL. This option allows
-     that capability.
-    
-   
-
-   
-    
-     Remove parameter geqo_random_seed
-     (Tom)
-    
-   
-
-   
-    
-     Add server parameter regex_flavor to control regular expression processing (Tom)
-    
-   
-
-   
-    
-     Make pg_ctl better handle nonstandard ports (Greg)
-    
-   
-  
-
-  Query Changes
-
-  
-   New SQL-standard information schema (Peter)
-   Add read-only transactions (Peter)
-   Print key name and value in foreign-key violation messages (Dmitry Tkach)
-
-   
-    Allow users to see their own queries in pg_stat_activity (Kevin Brown)
-    
-     In prior releases, only the superuser could see query strings
-     using pg_stat_activity. Now ordinary users
-     can see their own query strings.
-    
-   
-
-   
-    Fix aggregates in subqueries to match SQL standard (Tom)
-    
-     The SQL standard says that an aggregate function appearing
-     within a nested subquery belongs to the outer query if its
-     argument contains only outer-query variables.  Prior
-     PostgreSQL releases did not handle
-     this fine point correctly.
-    
-   
-
-   
-    Add option to prevent auto-addition of tables referenced in query (Nigel J. Andrews)
-    
-     By default, tables mentioned in the query are automatically
-     added to the FROM clause if they are not already
-     there.  This is compatible with historic
-     POSTGRES behavior but is contrary to
-     the SQL standard.  This option allows selecting
-     standard-compatible behavior.
-    
-   
-
-   
-    Allow UPDATE ... SET col = DEFAULT (Rod)
-    
-     This allows UPDATE to set a column to its
-     declared default value.
-    
-   
-
-   
-    Allow expressions to be used in LIMIT/OFFSET (Tom)
-    
-     In prior releases, LIMIT/OFFSET could
-     only use constants, not expressions.
-    
-   
-
-   
-    Implement CREATE TABLE AS EXECUTE (Neil, Peter)
-   
-  
-
-  Object Manipulation Changes
-
-  
-   
-    Make CREATE SEQUENCE grammar more conforming to SQL:2003 (Neil)
-   
-
-   
-    Add statement-level triggers (Neil)
-    
-     While this allows a trigger to fire at the end of a statement,
-     it does not allow the trigger to access all rows modified by the
-     statement.  This capability is planned for a future release.
-    
-   
-
-   
-    Add check constraints for domains (Rod)
-    
-     This greatly increases the usefulness of domains by allowing
-     them to use check constraints.
-    
-   
-
-   
-    Add ALTER DOMAIN (Rod)
-    
-     This allows manipulation of existing domains.
-    
-   
-
-   
-    Fix several zero-column table bugs (Tom)
-    
-     PostgreSQL supports zero-column tables. This fixes various bugs
-     that occur when using such tables.
-    
-   
-
-   
-    Have ALTER TABLE ... ADD PRIMARY KEY add not-null constraint (Rod)
-    
-     In prior releases, ALTER TABLE ... ADD
-     PRIMARY would add a unique index, but not a not-null
-     constraint.  That is fixed in this release.
-    
-   
-
-   Add ALTER TABLE ... WITHOUT OIDS (Rod)
-    
-     This allows control over whether new and updated rows will have
-     an OID column.  This is most useful for saving storage space.
-    
-   
-
-   
-    
-     Add ALTER SEQUENCE to modify minimum, maximum,
-     increment, cache, cycle values (Rod)
-    
-   
-
-   
-    Add ALTER TABLE ... CLUSTER ON (Alvaro Herrera)
-    
-     This command is used by pg_dump to record the
-     cluster column for each table previously clustered. This
-     information is used by database-wide cluster to cluster all
-     previously clustered tables.
-    
-   
-
-   Improve automatic type casting for domains (Rod, Tom)
-   Allow dollar signs in identifiers, except as first character (Tom)
-   Disallow dollar signs in operator names, so x=$1 works (Tom)
-
-   
-    
-     Allow copying table schema using LIKE
-     subtable, also SQL:2003
-     feature INCLUDING DEFAULTS (Rod)
-    
-   
-
-   
-    
-     Add WITH GRANT OPTION clause to
-     GRANT (Peter)
-    
-    
-     This enabled GRANT to give other users the
-     ability to grant privileges on a object.
-    
-   
-  
-
-  Utility Command Changes
-
-  
-   
-    Add ON COMMIT clause to CREATE TABLE for temporary tables (Gavin)
-    
-     This adds the ability for a table to be dropped or all rows
-     deleted on transaction commit.
-    
-   
-
-   
-    Allow cursors outside transactions using WITH HOLD (Neil)
-    
-     In previous releases, cursors were removed at the end of the
-     transaction that created them. Cursors can now be created with
-     the WITH HOLD option, which allows them to
-     continue to be accessed after the creating transaction has
-     committed.
-    
-   
-
-   
-    FETCH 0 and MOVE 0  now do nothing (Bruce)
-    
-     In previous releases, FETCH 0 fetched all
-     remaining rows, and MOVE 0 moved to the end
-     of the cursor.
-    
-   
-
-   
-    
-     Cause FETCH and MOVE to
-     return the number of rows fetched/moved, or zero if at the
-     beginning/end of cursor, per SQL standard (Bruce)
-    
-    
-     In prior releases, the row count returned by
-     FETCH and MOVE did not
-     accurately reflect the number of rows processed.
-    
-   
-
-   
-    Properly handle SCROLL with cursors, or
-    report an error (Neil)
-    
-     Allowing random access (both forward and backward scrolling) to
-     some kinds of queries cannot be done without some additional
-     work. If SCROLL is specified when the cursor
-     is created, this additional work will be performed. Furthermore,
-     if the cursor has been created with NO SCROLL,
-     no random access is allowed.
-    
-   
-
-   
-    
-     Implement SQL-compatible options FIRST,
-     LAST, ABSOLUTE n,
-     RELATIVE n for
-     FETCH and MOVE (Tom)
-    
-   
-
-   
-    Allow EXPLAIN on DECLARE CURSOR (Tom)
-   
-
-   
-    Allow CLUSTER to use index marked as pre-clustered by default (Alvaro Herrera)
-   
-
-   
-    Allow CLUSTER to cluster all tables (Alvaro Herrera)
-    
-     This allows all previously clustered tables in a database to be
-     reclustered with a single command.
-    
-   
-
-   Prevent CLUSTER on partial indexes (Tom)
-
-   Allow DOS and Mac line-endings in COPY files (Bruce)
-
-   
-    
-     Disallow literal carriage return as a data value,
-     backslash-carriage-return and \r are still allowed
-     (Bruce)
-    
-   
-
-   
-    COPY changes (binary, \.) (Tom)
-   
-
-   
-    Recover from COPY failure cleanly (Tom)
-   
-
-   
-    Prevent possible memory leaks in COPY (Tom)
-   
-
-   
-    Make TRUNCATE transaction-safe (Rod)
-    
-     TRUNCATE can now be used inside a
-     transaction. If the transaction aborts, the changes made by the
-     TRUNCATE are automatically rolled back.
-    
-   
-
-   
-    
-     Allow prepare/bind of utility commands like
-     FETCH and EXPLAIN (Tom)
-    
-   
-
-   
-    Add EXPLAIN EXECUTE (Neil)
-   
-
-   
-    Improve VACUUM performance on indexes by reducing WAL traffic (Tom)
-   
-
-   
-    Functional indexes have been generalized into indexes on expressions (Tom)
-    
-     In prior releases, functional indexes only supported a simple
-     function applied to one or more column names.  This release
-     allows any type of scalar expression.
-    
-   
-
-   
-    
-     Have SHOW TRANSACTION ISOLATION match input
-     to SET TRANSACTION ISOLATION
-     (Tom)
-    
-   
-
-   
-    
-      Have COMMENT ON DATABASE on nonlocal
-      database generate a warning, rather than an error (Rod)
-     
-
-    
-     Database comments are stored in database-local tables so
-     comments on a database have to be stored in each database.
-    
-   
-
-   
-    
-     Improve reliability of LISTEN/NOTIFY (Tom)
-    
-   
-
-   
-    Allow REINDEX to reliably reindex nonshared system catalog indexes (Tom)
-    
-     This allows system tables to be reindexed without the
-     requirement of a standalone session, which was necessary in
-     previous releases. The only tables that now require a standalone
-     session for reindexing are the global system tables
-     pg_database, pg_shadow, and
-     pg_group.
-    
-   
-  
-
-  Data Type and Function Changes
-
-  
-   
-    
-     New server parameter extra_float_digits to
-     control precision display of floating-point numbers (Pedro
-     Ferreira, Tom)
-    
-    
-     This controls output precision which was causing regression
-     testing problems.
-    
-   
-
-   Allow +1300 as a numeric time-zone specifier, for FJST (Tom)
-
-   
-    
-     Remove rarely used functions oidrand,
-     oidsrand, and userfntest functions
-     (Neil)
-    
-   
-
-   
-    Add md5() function to main server, already in contrib/pgcrypto (Joe)
-    
-     An MD5 function was frequently requested. For more complex
-     encryption capabilities, use
-     contrib/pgcrypto.
-    
-   
-
-   Increase date range of timestamp (John Cochran)
-
-   
-    
-     Change EXTRACT(EPOCH FROM timestamp) so
-     timestamp without time zone is assumed to be in
-     local time, not GMT (Tom)
-    
-   
-
-   Trap division by zero in case the operating system doesn't prevent it (Tom)
-   Change the numeric data type internally to base 10000 (Tom)
-   New hostmask() function (Greg Wickham)
-   Fixes for to_char() and to_timestamp() (Karel)
-
-   
-    
-     Allow functions that can take any argument data type and return
-     any data type, using anyelement and
-     anyarray (Joe)
-    
-    
-     This allows the creation of functions that can work with any
-     data type.
-    
-   
-
-   
-    
-     Arrays can now be specified as ARRAY[1,2,3],
-     ARRAY[['a','b'],['c','d']], or
-     ARRAY[ARRAY[ARRAY[2]]] (Joe)
-    
-   
-
-   
-    
-     Allow proper comparisons for arrays, including ORDER
-     BY and DISTINCT support
-     (Joe)
-    
-   
-
-   Allow indexes on array columns (Joe)
-   Allow array concatenation with || (Joe)
-
-   
-    
-     Allow WHERE qualification
-     expr op ANY/SOME/ALL
-     (array_expr) (Joe)
-    
-    
-     This allows arrays to behave like a list of values, for purposes
-     like SELECT * FROM tab WHERE col IN
-     (array_val).
-    
-   
-
-   
-    
-     New array functions array_append,
-     array_cat, array_lower,
-     array_prepend, array_to_string,
-     array_upper, string_to_array (Joe)
-    
-   
-
-   Allow user defined aggregates to use polymorphic functions (Joe)
-   Allow assignments to empty arrays (Joe)
-
-   
-    
-     Allow 60 in seconds fields of time,
-     timestamp, and interval input values
-     (Tom)
-    
-    
-     Sixty-second values are needed for leap seconds.
-    
-   
-
-   Allow cidr data type to be cast to text (Tom)
-
-   Disallow invalid time zone names in SET TIMEZONE
-
-   
-    
-     Trim trailing spaces when char is cast to
-     varchar or text (Tom)
-    
-   
-
-   
-    
-     Make float(p) measure the precision
-     p in binary digits, not decimal digits
-     (Tom)
-    
-   
-
-   
-    Add IPv6 support to the inet and cidr data types (Michael Graff)
-   
-
-   
-    Add family() function to report whether address is IPv4 or IPv6 (Michael Graff)
-   
-
-   
-    
-     Have SHOW datestyle generate output similar
-     to that used by SET datestyle (Tom)
-    
-   
-
-   
-    
-     Make EXTRACT(TIMEZONE) and SET/SHOW
-     TIME ZONE follow the SQL convention for the sign of
-     time zone offsets, i.e., positive is east from UTC (Tom)
-    
-   
-
-   
-    Fix date_trunc('quarter', ...) (Böjthe Zoltán)
-    
-     Prior releases returned an incorrect value for this function call.
-    
-   
-
-   
-    Make initcap() more compatible with Oracle (Mike Nolan)
-    
-     initcap() now uppercases a letter appearing
-     after any non-alphanumeric character, rather than only after
-     whitespace.
-    
-   
-
-   
-    Allow only datestyle field order for date values not in ISO-8601 format (Greg)
-   
-
-   
-    
-     Add new datestyle values MDY,
-     DMY, and YMD to set input field order;
-     honor US and European for backward
-     compatibility (Tom)
-    
-   
-
-   
-    
-     String literals like 'now' or
-     'today' will no longer work as a column
-     default. Use functions such as now(),
-     current_timestamp instead.  (change
-     required for prepared statements) (Tom)
-    
-   
-
-   
-    Treat NaN as larger than any other value in min()/max() (Tom)
-    
-     NaN was already sorted after ordinary numeric values for most
-     purposes, but min() and max() didn't
-     get this right.
-    
-   
-
-   
-    Prevent interval from suppressing :00
-    seconds display
-   
-
-   
-    
-     New functions pg_get_triggerdef(prettyprint)
-     and pg_conversion_is_visible() (Christopher)
-    
-   
-
-   
-    Allow time to be specified as 040506 or 0405 (Tom)
-   
-
-   
-    
-     Input date order must now be YYYY-MM-DD (with 4-digit year) or
-     match datestyle
-    
-   
-
-   
-    
-     Make pg_get_constraintdef support
-     unique, primary-key, and check constraints (Christopher)
-    
-   
-  
-
-  Server-Side Language Changes
-
-  
-   
-    
-     Prevent PL/pgSQL crash when RETURN NEXT is
-     used on a zero-row record variable (Tom)
-    
-   
-
-   
-    
-     Make PL/Python's spi_execute interface
-     handle null values properly (Andrew Bosma)
-    
-   
-
-   
-    Allow PL/pgSQL to declare variables of composite types without %ROWTYPE (Tom)
-   
-
-   
-    Fix PL/Python's _quote() function to handle big integers
-   
-
-   
-    Make PL/Python an untrusted language, now called plpythonu (Kevin Jacobs, Tom)
-    
-     The Python language no longer supports a restricted execution
-     environment, so the trusted version of PL/Python was removed. If
-     this situation changes, a version of PL/Python that can be used
-     by non-superusers will be readded.
-    
-   
-
-   
-    Allow polymorphic PL/pgSQL functions (Joe, Tom)
-   
-
-   
-    Allow polymorphic SQL functions (Joe)
-   
-
-   
-    
-     Improved compiled function caching mechanism in PL/pgSQL with
-     full support for polymorphism (Joe)
-    
-   
-
-   
-    
-     Add new parameter $0 in PL/pgSQL representing the
-     function's actual return type (Joe)
-    
-   
-
-   
-    
-     Allow PL/Tcl and PL/Python to use the same trigger on multiple tables (Tom)
-    
-   
-
-   
-    
-     Fixed PL/Tcl's spi_prepare to accept fully
-     qualified type names in the parameter type list
-     (Jan)
-    
-   
-  
-
-  psql Changes
-
-  
-   
-    Add \pset pager always to always use pager (Greg)
-    
-     This forces the pager to be used even if the number of rows is
-     less than the screen height.  This is valuable for rows that
-     wrap across several screen rows.
-    
-   
-
-   Improve tab completion (Rod, Ross Reedstrom, Ian Barwick)
-   Reorder \? help into groupings (Harald Armin Massa, Bruce)
-   Add backslash commands for listing schemas, casts, and conversions (Christopher)
-
-   
-    
-     \encoding now changes based on the server parameter
-     client_encoding (Tom)
-    
-    
-     In previous versions, \encoding was not aware
-     of encoding changes made using SET
-     client_encoding.
-    
-   
-
-   
-    Save editor buffer into readline history (Ross)
-    
-     When \e is used to edit a query, the result is saved
-     in the readline history for retrieval using the up arrow.
-    
-   
-
-   Improve \d display (Christopher)
-   Enhance HTML mode to be more standards-conforming (Greg)
-
-   
-    New \set AUTOCOMMIT off capability (Tom)
-    
-     This takes the place of the removed server parameter autocommit.
-    
-   
-
-   
-    New \set VERBOSITY to control error detail (Tom)
-    
-     This controls the new error reporting details.
-    
-   
-
-   New prompt escape sequence %x to show transaction status (Tom)
-   Long options for psql are now available on all platforms
-  
-
-  pg_dump Changes
-
-  
-   Multiple pg_dump fixes, including tar format and large objects
-   Allow pg_dump to dump specific schemas (Neil)
-
-   
-    Make pg_dump preserve column storage characteristics (Christopher)
-    
-     This preserves ALTER TABLE ... SET STORAGE information.
-    
-   
-
-   Make pg_dump preserve CLUSTER characteristics (Christopher)
-
-   
-    
-     Have pg_dumpall use GRANT/REVOKE to dump database-level privileges (Tom)
-    
-   
-
-   
-    
-     Allow pg_dumpall to support the options 
-     
-    
-   
-
-   Prevent pg_dump from lowercasing identifiers specified on the command line (Tom)
-
-   
-    
-     pg_dump options 
-     and  now do nothing, all dumps
-     use SET SESSION AUTHORIZATION
-    
-    
-     pg_dump no longer reconnects to switch users, but instead always
-     uses SET SESSION AUTHORIZATION. This will
-     reduce password prompting during restores.
-    
-   
-
-   
-    Long options for pg_dump are now available on all platforms
-    
-     PostgreSQL now includes its own
-     long-option processing routines.
-    
-   
-  
-
-  libpq Changes
-
-  
-   
-    
-     Add function PQfreemem for freeing memory on
-     Windows, suggested for NOTIFY (Bruce)
-    
-    
-     Windows requires that memory allocated in a library be freed by
-     a function in the same library, hence
-     free() doesn't work for freeing memory
-     allocated by libpq. PQfreemem is the proper
-     way to free libpq memory, especially on Windows, and is
-     recommended for other platforms as well.
-    
-   
-
-   
-    Document service capability, and add sample file (Bruce)
-    
-     This allows clients to look up connection information in a
-     central file on the client machine.
-    
-   
-
-   
-    
-     Make PQsetdbLogin have the same defaults as
-     PQconnectdb (Tom)
-    
-   
-
-   Allow libpq to cleanly fail when result sets are too large (Tom)
-
-   
-    
-     Improve performance of function PQunescapeBytea (Ben Lamb)
-    
-   
-
-   
-    
-     Allow thread-safe libpq with configure
-     option  (Lee Kindness,
-     Philip Yarra)
-    
-   
-
-   
-    
-     Allow function pqInternalNotice to accept a
-     format string and arguments instead of just a preformatted
-     message (Tom, Sean Chittenden)
-    
-   
-
-   
-    
-     Control SSL negotiation with sslmode values
-     disableallow,
-     prefer, and require (Jon
-     Jensen)
-    
-   
-
-   
-    Allow new error codes and levels of text (Tom)
-   
-
-   
-    Allow access to the underlying table and column of a query result (Tom)
-    
-     This is helpful for query-builder applications that want to know
-     the underlying table and column names associated with a specific
-     result set.
-    
-   
-
-   Allow access to the current transaction status (Tom)
-   Add ability to pass binary data directly to the server (Tom)
-
-   
-    
-     Add function PQexecPrepared and
-     PQsendQueryPrepared functions which perform
-     bind/execute of previously prepared statements (Tom)
-     
-    
-  
-
-  JDBC Changes
-
-  
-   Allow setNull on updateable result sets
-   Allow executeBatch on a prepared statement (Barry)
-   Support SSL connections (Barry)
-   Handle schema names in result sets (Paul Sorenson)
-   Add refcursor support (Nic Ferrier)
-  
-
-  Miscellaneous Interface Changes
-
-  
-   
-    Prevent possible memory leak or core dump during libpgtcl shutdown (Tom)
-   
-   
-    Add Informix compatibility to ECPG (Michael)
-    
-     This allows ECPG to process embedded C programs that were
-     written using certain Informix extensions.
-    
-   
-
-   
-    Add type decimal to ECPG that is fixed length, for Informix (Michael)
-   
-
-   
-    
-     Allow thread-safe embedded SQL programs with
-     configure option
-      (Lee Kindness, Bruce)
-    
-    
-     This allows multiple threads to access the database at the same
-     time.
-    
-   
-
-   
-    Moved Python client PyGreSQL to  (Marc)
-   
-  
-
-  Source Code Changes
-
-  
-   Prevent need for separate platform geometry regression result files (Tom)
-   Improved PPC locking primitive (Reinhard Max)
-   New function palloc0 to allocate and clear memory (Bruce)
-   Fix locking code for s390x CPU (64-bit) (Tom)
-   Allow OpenBSD to use local ident credentials (William Ahern)
-   Make query plan trees read-only to executor (Tom)
-   Add Darwin startup scripts (David Wheeler)
-   Allow libpq to compile with Borland C++ compiler (Lester Godwin, Karl Waclawek)
-   Use our own version of getopt_long() if needed (Peter)
-   Convert administration scripts to C (Peter)
-    Bison >= 1.85 is now required to build the PostgreSQL grammar, if building from CVS
-   Merge documentation into one book (Peter)
-   Add Windows compatibility functions (Bruce)
-   Allow client interfaces to compile under MinGW (Bruce)
-   New ereport() function for error reporting (Tom)
-   Support Intel compiler on Linux (Peter)
-   Improve Linux startup scripts (Slawomir Sudnik, Darko Prenosil)
-   Add support for AMD Opteron and Itanium (Jeffrey W. Baker, Bruce)
-   
-    Remove  option from configure
-    
-     This was no longer needed now that we have CREATE CONVERSION.
-    
-   
-   
-    Generate a compile error if spinlock code is not found (Bruce)
-    
-     Platforms without spinlock code will now fail to compile, rather
-     than silently using semaphores. This failure can be disabled
-     with a new configure option.
-    
-   
-  
-
-  Contrib Changes
-
-  
-   Change dbmirror license to BSD
-   Improve earthdistance (Bruno Wolff III)
-   Portability improvements to pgcrypto (Marko Kreen)
-   Prevent crash in xml (John Gray, Michael Richards)
-   Update oracle
-   Update mysql
-   Update cube (Bruno Wolff III)
-   Update earthdistance to use cube (Bruno Wolff III)
-   Update btree_gist (Oleg)
-   New tsearch2 full-text search module (Oleg, Teodor)
-   Add hash-based crosstab function to tablefuncs (Joe)
-   Add serial column to order connectby() siblings in tablefuncs (Nabil Sayegh,Joe)
-   Add named persistent connections to dblink (Shridhar Daithanka)
-   New pg_autovacuum allows automatic VACUUM (Matthew T. O'Connor)
-   Make pgbench honor environment variables PGHOST, PGPORT, PGUSER (Tatsuo)
-   Improve intarray (Teodor Sigaev)
-   Improve pgstattuple (Rod)
-   Fix bug in metaphone() in fuzzystrmatch
-   Improve adddepend (Rod)
-   Update spi/timetravel (Böjthe Zoltán)
-   Fix dbase 
-   Remove array module because features now included by default (Joe)
-  
-
-
-  Release 7.3.21
-
-  
-  Release date
-  2008-01-07
-  
-
-  
-   This release contains a variety of fixes from 7.3.20,
-   including fixes for significant security issues.
-  
-
-  
-   This is expected to be the last PostgreSQL release
-   in the 7.3.X series.  Users are encouraged to update to a newer
-   release branch soon.
-  
-
-  
-   Migration to Version 7.3.21
-
-   
-    A dump/restore is not required for those running 7.3.X.  However,
-    if you are upgrading from a version earlier than 7.3.13, see the release
-    notes for 7.3.13.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Prevent functions in indexes from executing with the privileges of
-      the user running VACUUM, ANALYZE, etc (Tom)
-     
-
-     
-      Functions used in index expressions and partial-index
-      predicates are evaluated whenever a new table entry is made.  It has
-      long been understood that this poses a risk of trojan-horse code
-      execution if one modifies a table owned by an untrustworthy user.
-      (Note that triggers, defaults, check constraints, etc. pose the
-      same type of risk.)  But functions in indexes pose extra danger
-      because they will be executed by routine maintenance operations
-      such as VACUUM FULL, which are commonly performed
-      automatically under a superuser account.  For example, a nefarious user
-      can execute code with superuser privileges by setting up a
-      trojan-horse index definition and waiting for the next routine vacuum.
-      The fix arranges for standard maintenance operations
-      (including VACUUM, ANALYZE, REINDEX,
-      and CLUSTER) to execute as the table owner rather than
-      the calling user, using the same privilege-switching mechanism already
-      used for SECURITY DEFINER functions.  To prevent bypassing
-      this security measure, execution of SET SESSION
-      AUTHORIZATION and SET ROLE is now forbidden within a
-      SECURITY DEFINER context.  (CVE-2007-6600)
-     
-    
-
-    
-     
-      Require non-superusers who use /contrib/dblink to use only
-      password authentication, as a security measure (Joe)
-     
-
-     
-      The fix that appeared for this in 7.3.20 was incomplete, as it plugged
-      the hole for only some dblink functions.  (CVE-2007-6601,
-      CVE-2007-3278)
-     
-    
-
-    
-     
-      Fix potential crash in translate() when using a multibyte
-      database encoding (Tom)
-     
-    
-
-    
-     
-      Make contrib/tablefunc's crosstab() handle
-      NULL rowid as a category in its own right, rather than crashing (Joe)
-     
-    
-
-    
-     
-      Require a specific version of Autoconf to be used
-      when re-generating the configure script (Peter)
-     
-
-     
-      This affects developers and packagers only.  The change was made
-      to prevent accidental use of untested combinations of
-      Autoconf and PostgreSQL versions.
-      You can remove the version check if you really want to use a
-      different Autoconf version, but it's
-      your responsibility whether the result works or not.
-     
-    
-
-   
-
-  
-
-  Release 7.3.20
-
-  
-  Release date
-  2007-09-17
-  
-
-  
-   This release contains fixes from 7.3.19.
-  
-
-  
-   Migration to Version 7.3.20
-
-   
-    A dump/restore is not required for those running 7.3.X.  However,
-    if you are upgrading from a version earlier than 7.3.13, see the release
-    notes for 7.3.13.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      Prevent index corruption when a transaction inserts rows and
-      then aborts close to the end of a concurrent VACUUM
-      on the same table (Tom)
-     
-    
-
-    
-     
-      Make CREATE DOMAIN ... DEFAULT NULL work properly (Tom)
-     
-    
-
-    
-     
-      Fix crash when log_min_error_statement logging runs out
-      of memory (Tom)
-     
-    
-
-    
-     
-      Require non-superusers who use /contrib/dblink to use only
-      password authentication, as a security measure (Joe)
-     
-    
-
-   
-
-  
-
-  Release 7.3.19
-
-  
-  Release date
-  2007-04-23
-  
-
-  
-   This release contains fixes from 7.3.18,
-   including a security fix.
-  
-
-  
-   Migration to Version 7.3.19
-
-   
-    A dump/restore is not required for those running 7.3.X.  However,
-    if you are upgrading from a version earlier than 7.3.13, see the release
-    notes for 7.3.13.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-    
-     Support explicit placement of the temporary-table schema within
-     search_path, and disable searching it for functions
-     and operators (Tom)
-    
-    
-     This is needed to allow a security-definer function to set a
-     truly secure value of search_path.  Without it,
-     an unprivileged SQL user can use temporary objects to execute code
-     with the privileges of the security-definer function (CVE-2007-2138).
-     See CREATE FUNCTION for more information.
-    
-    
-
-    
-    
-     Fix potential-data-corruption bug in how VACUUM FULL handles
-     UPDATE chains (Tom, Pavan Deolasee)
-    
-    
-
-   
-
-  
-
-  Release 7.3.18
-
-  
-  Release date
-  2007-02-05
-  
-
-  
-   This release contains a variety of fixes from 7.3.17, including
-   a security fix.
-  
-
-  
-   Migration to Version 7.3.18
-
-   
-    A dump/restore is not required for those running 7.3.X.  However,
-    if you are upgrading from a version earlier than 7.3.13, see the release
-    notes for 7.3.13.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-    
-     Remove security vulnerability that allowed connected users
-     to read backend memory (Tom)
-    
-    
-     The vulnerability involves changing the
-     data type of a table column used in a SQL function (CVE-2007-0555).
-     This error can easily be exploited to cause a backend crash, and in
-     principle might be used to read database content that the user
-     should not be able to access.
-    
-    
-
-    
-    
-     Fix rare bug wherein btree index page splits could fail
-     due to choosing an infeasible split point (Heikki Linnakangas)
-    
-    
-
-    
-    
-     Tighten security of multi-byte character processing for UTF8 sequences
-     over three bytes long (Tom)
-    
-    
-
-   
-
-  
-
-  Release 7.3.17
-
-  
-  Release date
-  2007-01-08
-  
-
-  
-   This release contains a variety of fixes from 7.3.16.
-  
-
-  
-   Migration to Version 7.3.17
-
-   
-    A dump/restore is not required for those running 7.3.X.  However,
-    if you are upgrading from a version earlier than 7.3.13, see the release
-    notes for 7.3.13.
-   
-
-  
-
-  
-   Changes
-
-   
-
-    
-     
-      to_number() and to_char(numeric)
-      are now STABLE, not IMMUTABLE, for
-      new initdb installs (Tom)
-     
-
-     
-      This is because lc_numeric can potentially
-      change the output of these functions.
-     
-    
-
-    
-     
-      Improve index usage of regular expressions that use parentheses (Tom)
-     
-
-     
-      This improves psql \d performance also.
-     
-    
-
-   
-
-  
-
-  Release 7.3.16
-
-  
-  Release date
-  2006-10-16
-  
-
-  
-   This release contains a variety of fixes from 7.3.15.
-  
-
-  
-   Migration to Version 7.3.16
-
-   
-    A dump/restore is not required for those running 7.3.X.  However,
-    if you are upgrading from a version earlier than 7.3.13, see the release
-    notes for 7.3.13.
-   
-
-  
-
-  
-   Changes
-
-
-Fix corner cases in pattern matching for
psql's \d commands
-Fix index-corrupting bugs in /contrib/ltree
- (Teodor)
-Back-port 7.4 spinlock code to improve performance and support
-64-bit architectures better 
-Fix SSL-related memory leak in libpq 
-Fix backslash escaping in /contrib/dbmirror
-Adjust regression tests for recent changes in US DST laws
-
-
-  
-
-  Release 7.3.15
-
-  
-  Release date
-  2006-05-23
-  
-
-  
-   This release contains a variety of fixes from 7.3.14,
-   including patches for extremely serious security issues.
-  
-
-  
-   Migration to Version 7.3.15
-
-   
-    A dump/restore is not required for those running 7.3.X.  However,
-    if you are upgrading from a version earlier than 7.3.13, see the release
-    notes for 7.3.13.
-   
-
-   
-    Full security against the SQL-injection attacks described in
-    CVE-2006-2313 and CVE-2006-2314 might require changes in application
-    code.  If you have applications that embed untrustworthy strings
-    into SQL commands, you should examine them as soon as possible to
-    ensure that they are using recommended escaping techniques.  In
-    most cases, applications should be using subroutines provided by
-    libraries or drivers (such as libpq's
-    PQescapeStringConn()) to perform string escaping,
-    rather than relying on ad hoc code to do it.
-   
-  
-
-  
-   Changes
-
-
-Change the server to reject invalidly-encoded multibyte
-characters in all cases (Tatsuo, Tom)
-While PostgreSQL has been moving in this direction for
-some time, the checks are now applied uniformly to all encodings and all
-textual input, and are now always errors not merely warnings.  This change
-defends against SQL-injection attacks of the type described in CVE-2006-2313.
-
-
-Reject unsafe uses of \' in string literals
-As a server-side defense against SQL-injection attacks of the type
-described in CVE-2006-2314, the server now only accepts '' and not
-\' as a representation of ASCII single quote in SQL string
-literals.  By default, \' is rejected only when
-client_encoding is set to a client-only encoding (SJIS, BIG5, GBK,
-GB18030, or UHC), which is the scenario in which SQL injection is possible.
-A new configuration parameter backslash_quote is available to
-adjust this behavior when needed.  Note that full security against
-CVE-2006-2314 might require client-side changes; the purpose of
-backslash_quote is in part to make it obvious that insecure
-clients are insecure.
-
-
-Modify libpq's string-escaping routines to be
-aware of encoding considerations
-This fixes libpq-using applications for the security
-issues described in CVE-2006-2313 and CVE-2006-2314.
-Applications that use multiple PostgreSQL connections
-concurrently should migrate to PQescapeStringConn() and
-PQescapeByteaConn() to ensure that escaping is done correctly
-for the settings in use in each database connection.  Applications that
-do string escaping by hand should be modified to rely on library
-routines instead.
-
-
-Fix some incorrect encoding conversion functions
-win1251_to_iso, alt_to_iso,
-euc_tw_to_big5, euc_tw_to_mic,
-mic_to_euc_tw were all broken to varying
-extents.
-
-
-Clean up stray remaining uses of \' in strings
-(Bruce, Jan)
-
-Fix server to use custom DH SSL parameters correctly (Michael
-Fuhr)
-
-Fix various minor memory leaks
-
-
-  
-
-  Release 7.3.14
-
-  
-  Release date
-  2006-02-14
-  
-
-  
-   This release contains a variety of fixes from 7.3.13.
-  
-
-  
-   Migration to Version 7.3.14
-
-   
-    A dump/restore is not required for those running 7.3.X.  However,
-    if you are upgrading from a version earlier than 7.3.13, see the release
-    notes for 7.3.13.
-   
-  
-
-  
-   Changes
-
-
-
-Fix potential crash in SET
-SESSION AUTHORIZATION (CVE-2006-0553)
-An unprivileged user could crash the server process, resulting in
-momentary denial of service to other users, if the server has been compiled
-with Asserts enabled (which is not the default).
-Thanks to Akio Ishida for reporting this problem.
-
-
-Fix bug with row visibility logic in self-inserted
-rows (Tom)
-Under rare circumstances a row inserted by the current command
-could be seen as already valid, when it should not be.  Repairs bug
-created in 7.3.11 release.
-
-
-Fix race condition that could lead to file already
-exists errors during pg_clog file creation
-(Tom)
-
-Fix to allow restoring dumps that have cross-schema
-references to custom operators (Tom)
-
-Portability fix for testing presence of finite
-and isinf during configure (Tom)
-
-
-
-  
-
-  Release 7.3.13
-
-  
-  Release date
-  2006-01-09
-  
-
-  
-   This release contains a variety of fixes from 7.3.12.
-  
-
-  
-   Migration to Version 7.3.13
-
-   
-    A dump/restore is not required for those running 7.3.X.  However,
-    if you are upgrading from a version earlier than 7.3.10, see the release
-    notes for 7.3.10.
-    Also, you might need to REINDEX indexes on textual
-    columns after updating, if you are affected by the locale or
-    plperl issues described below.
-   
-  
-
-  
-   Changes
-
-
-
-Fix character string comparison for locales that consider
-different character combinations as equal, such as Hungarian (Tom)
-This might require REINDEX to fix existing indexes on
-textual columns.
-
-Set locale environment variables during postmaster startup
-to ensure that plperl won't change the locale later
-This fixes a problem that occurred if the postmaster was
-started with environment variables specifying a different locale than what
-initdb had been told.  Under these conditions, any use of
-plperl was likely to lead to corrupt indexes.  You might need
-REINDEX to fix existing indexes on
-textual columns if this has happened to you.
-
-Fix longstanding bug in strpos() and regular expression
-handling in certain rarely used Asian multi-byte character sets (Tatsuo)
-
-
-Fix bug in /contrib/pgcrypto gen_salt,
-which caused it not to use all available salt space for MD5 and
-XDES algorithms (Marko Kreen, Solar Designer)
-Salts for Blowfish and standard DES are unaffected.
-
-Fix /contrib/dblink to throw an error,
-rather than crashing, when the number of columns specified is different from
-what's actually returned by the query (Joe)
-
-
-
-  
-
-  Release 7.3.12
-
-  
-  Release date
-  2005-12-12
-  
-
-  
-   This release contains a variety of fixes from 7.3.11.
-  
-
-  
-   Migration to Version 7.3.12
-
-   
-    A dump/restore is not required for those running 7.3.X.  However,
-    if you are upgrading from a version earlier than 7.3.10, see the release
-    notes for 7.3.10.
-   
-  
-
-  
-   Changes
-
-
-
-Fix race condition in transaction log management
-There was a narrow window in which an I/O operation could be initiated
-for the wrong page, leading to an Assert failure or data
-corruption.
-
-
-/contrib/ltree fixes (Teodor)
-
-Fix longstanding planning error for outer joins
-This bug sometimes caused a bogus error RIGHT JOIN is
-only supported with merge-joinable join conditions.
-
-Prevent core dump in pg_autovacuum when a
-table has been dropped
-
-
-
-  
-
-  Release 7.3.11
-
-  
-  Release date
-  2005-10-04
-  
-
-  
-   This release contains a variety of fixes from 7.3.10.
-  
-
-  
-   Migration to Version 7.3.11
-
-   
-    A dump/restore is not required for those running 7.3.X.  However,
-    if you are upgrading from a version earlier than 7.3.10, see the release
-    notes for 7.3.10.
-   
-  
-
-  
-   Changes
-
-
-Fix error that allowed VACUUM to remove
-ctid chains too soon, and add more checking in code that follows
-ctid links
-This fixes a long-standing problem that could cause crashes in very rare
-circumstances.
-Fix CHAR() to properly pad spaces to the specified
-length when using a multiple-byte character set (Yoshiyuki Asaba)
-In prior releases, the padding of CHAR() was incorrect
-because it only padded to the specified number of bytes without
-considering how many characters were stored.
-Fix missing rows in queries like UPDATE a=... WHERE
-a... with GiST index on column a
-Improve checking for partially-written WAL
-pages
-Improve robustness of signal handling when SSL is
-enabled
-Various memory leakage fixes
-Various portability improvements
-Fix PL/PgSQL to handle var := var correctly when
-the variable is of pass-by-reference type
-
-
-  
-
-  Release 7.3.10
-
-  
-  Release date
-  2005-05-09
-  
-
-  
-   This release contains a variety of fixes from 7.3.9, including several
-   security-related issues.
-  
-
-  
-   Migration to Version 7.3.10
-
-   
-    A dump/restore is not required for those running 7.3.X.  However,
-    it is one possible way of handling a significant security problem
-    that has been found in the initial contents of 7.3.X system
-    catalogs.  A dump/initdb/reload sequence using 7.3.10's initdb will
-    automatically correct this problem.
-   
-
-   
-    The security problem is that the built-in character set encoding
-    conversion functions can be invoked from SQL commands by unprivileged
-    users, but the functions were not designed for such use and are not
-    secure against malicious choices of arguments.  The fix involves changing
-    the declared parameter list of these functions so that they can no longer
-    be invoked from SQL commands.  (This does not affect their normal use
-    by the encoding conversion machinery.)
-    It is strongly recommended that all installations repair this error,
-    either by initdb or by following the manual repair procedure given
-    below.  The error at least allows unprivileged database users to crash
-    their server process, and might allow unprivileged users to gain the
-    privileges of a database superuser.
-   
-
-   
-    If you wish not to do an initdb, perform the following procedure instead.
-    As the database superuser, do:
-
-
-BEGIN;
-UPDATE pg_proc SET proargtypes[3] = 'internal'::regtype
-WHERE pronamespace = 11 AND pronargs = 5
-     AND proargtypes[2] = 'cstring'::regtype;
--- The command should report having updated 90 rows;
--- if not, rollback and investigate instead of committing!
-COMMIT;
-
-   
-
-   
-    The above procedure must be carried out in each database
-    of an installation, including template1, and ideally
-    including template0 as well.  If you do not fix the
-    template databases then any subsequently created databases will contain
-    the same error.  template1 can be fixed in the same way
-    as any other database, but fixing template0 requires
-    additional steps.  First, from any database issue:
-
-UPDATE pg_database SET datallowconn = true WHERE datname = 'template0';
-
-     Next connect to template0 and perform the above repair
-     procedure.  Finally, do:
-
--- re-freeze template0:
-VACUUM FREEZE;
--- and protect it against future alterations:
-UPDATE pg_database SET datallowconn = false WHERE datname = 'template0';
-
-   
-  
-
-  
-   Changes
-
-
-Change encoding function signature to prevent
-misuse
-Repair ancient race condition that allowed a transaction to be
-seen as committed for some purposes (eg SELECT FOR UPDATE) slightly sooner
-than for other purposes
-This is an extremely serious bug since it could lead to apparent
-data inconsistencies being briefly visible to applications.
-Repair race condition between relation extension and
-VACUUM
-This could theoretically have caused loss of a page's worth of
-freshly-inserted data, although the scenario seems of very low probability.
-There are no known cases of it having caused more than an Assert failure.
-
-Fix comparisons of TIME WITH TIME ZONE values
-
-The comparison code was wrong in the case where the
---enable-integer-datetimes configuration switch had been used.
-NOTE: if you have an index on a TIME WITH TIME ZONE column,
-it will need to be REINDEXed after installing this update, because
-the fix corrects the sort order of column values.
-
-Fix EXTRACT(EPOCH) for
-TIME WITH TIME ZONE values
-Fix mis-display of negative fractional seconds in
-INTERVAL values
-
-This error only occurred when the
---enable-integer-datetimes configuration switch had been used.
-
-Additional buffer overrun checks in plpgsql
-(Neil)
-Fix pg_dump to dump trigger names containing %
-correctly (Neil)
-Prevent to_char(interval) from dumping core for
-month-related formats
-Fix contrib/pgcrypto for newer OpenSSL builds
-(Marko Kreen)
-Still more 64-bit fixes for
-contrib/intagg
-Prevent incorrect optimization of functions returning
-RECORD
-
-
-
-
-  Release 7.3.9
-
-  
-  Release date
-  2005-01-31
-  
-
-  
-   This release contains a variety of fixes from 7.3.8, including several
-   security-related issues.
-  
-
-  
-   Migration to Version 7.3.9
-
-   
-    A dump/restore is not required for those running 7.3.X.
-   
-  
-
-  
-   Changes
-
-
-Disallow LOAD to non-superusers
-
-On platforms that will automatically execute initialization functions of a
-shared library (this includes at least Windows and ELF-based Unixen),
-LOAD can be used to make the server execute arbitrary code.
-Thanks to NGS Software for reporting this.
-Check that creator of an aggregate function has the right to
-execute the specified transition functions
-
-This oversight made it possible to bypass denial of EXECUTE
-permission on a function.
-Fix security and 64-bit issues in
-contrib/intagg
-Add needed STRICT marking to some contrib functions (Kris
-Jurka)
-Avoid buffer overrun when plpgsql cursor declaration has too
-many parameters (Neil)
-Fix planning error for FULL and RIGHT outer joins
-
-The result of the join was mistakenly supposed to be sorted the same as the
-left input.  This could not only deliver mis-sorted output to the user, but
-in case of nested merge joins could give outright wrong answers.
-
-Fix plperl for quote marks in tuple fields
-Fix display of negative intervals in SQL and GERMAN
-datestyles
-
-
-
-
-  Release 7.3.8
-
-  
-  Release date
-  2004-10-22
-  
-
-  
-   This release contains a variety of fixes from 7.3.7.
-  
-
-
-  
-   Migration to Version 7.3.8
-
-   
-    A dump/restore is not required for those running 7.3.X.
-   
-  
-
-  
-   Changes
-
-
-Repair possible failure to update hint bits on disk
-
-Under rare circumstances this oversight could lead to
-could not access transaction status failures, which qualifies
-it as a potential-data-loss bug.
-
-Ensure that hashed outer join does not miss tuples
-
-Very large left joins using a hash join plan could fail to output unmatched
-left-side rows given just the right data distribution.
-
-Disallow running pg_ctl as root
-
-This is to guard against any possible security issues.
-
-Avoid using temp files in /tmp in make_oidjoins_check
-
-This has been reported as a security issue, though it's hardly worthy of
-concern since there is no reason for non-developers to use this script anyway.
-
-
-
-
-
-  Release 7.3.7
-
-  
-  Release date
-  2004-08-16
-  
-
-  
-   This release contains one critical fix over 7.3.6, and some minor items.
-  
-
-
-  
-   Migration to Version 7.3.7
-
-   
-    A dump/restore is not required for those running 7.3.X.
-   
-  
-
-  
-   Changes
-
-
-Prevent possible loss of committed transactions during crash
-
-Due to insufficient interlocking between transaction commit and checkpointing,
-it was possible for transactions committed just before the most recent
-checkpoint to be lost, in whole or in part, following a database crash and
-restart.  This is a serious bug that has existed
-since PostgreSQL 7.1.
-
-Remove asymmetrical word processing in tsearch (Teodor)
-Properly schema-qualify function names when pg_dump'ing a CAST
-
-
-
-
-  Release 7.3.6
-
-  
-  Release date
-  2004-03-02
-  
-
-  
-   This release contains a variety of fixes from 7.3.5.
-  
-
-
-  
-   Migration to Version 7.3.6
-
-   
-    A dump/restore is not required for those
-    running 7.3.*.
-   
-
-  
-
-  
-   Changes
-
-
-Revert erroneous changes in rule permissions checking
-A patch applied in 7.3.3 to fix a corner case in rule permissions checks
-turns out to have disabled rule-related permissions checks in many
-not-so-corner cases.  This would for example allow users to insert into views
-they weren't supposed to have permission to insert into.  We have therefore
-reverted the 7.3.3 patch.  The original bug will be fixed in 8.0.
-
-Repair incorrect order of operations in
-GetNewTransactionId()
-
-This bug could result in failure under out-of-disk-space conditions, including
-inability to restart even after disk space is freed.
-
-Ensure configure selects -fno-strict-aliasing even when
-an external value for CFLAGS is supplied
-
-On some platforms, building with -fstrict-aliasing causes bugs.
-
-Make pg_restore handle 64-bit off_t correctly
-
-This bug prevented proper restoration from archive files exceeding 4 GB.
-
-Make contrib/dblink not assume that local and remote type OIDs
-match (Joe)
-Quote connectby()'s start_with argument properly (Joe)
-Don't crash when a rowtype argument to a plpgsql function is
-NULL
-Avoid generating invalid character encoding sequences in
-corner cases when planning LIKE operations
-Ensure text_position() cannot scan past end of source string
-in multibyte cases (Korea PostgreSQL Users' Group)
-Fix index optimization and selectivity estimates for LIKE
-operations on bytea columns (Joe)
-
-
-
-
-  Release 7.3.5
-
-  
-  Release date
-  2003-12-03
-  
-
-  
-   This has a variety of fixes from 7.3.4.
-  
-
-
-  
-   Migration to Version 7.3.5
-
-   
-    A dump/restore is not required for those
-    running 7.3.*.
-   
-  
-
-  
-   Changes
-
-
-Force zero_damaged_pages to be on during recovery from WAL
-Prevent some obscure cases of variable not in subplan target lists
-Force stats processes to detach from shared memory, ensuring cleaner shutdown
-Make PQescapeBytea and byteaout consistent with each other (Joe)
-Added missing SPI_finish() calls to dblink's get_tuple_of_interest() (Joe)
-Fix for possible foreign key violation when rule rewrites INSERT (Jan)
-Support qualified type names in PL/Tcl's spi_prepare command (Jan)
-Make pg_dump handle a procedural language handler located in pg_catalog
-Make pg_dump handle cases where a custom opclass is in another schema
-Make pg_dump dump binary-compatible casts correctly (Jan)
-Fix insertion of expressions containing subqueries into rule bodies
-Fix incorrect argument processing in clusterdb script (Anand Ranganathan)
-Fix problems with dropped columns in plpython triggers
-Repair problems with to_char() reading past end of its input string (Karel)
-Fix GB18030 mapping errors (Tatsuo)
-Fix several problems with SSL error handling and asynchronous SSL I/O
-Remove ability to bind a list of values to a single parameter in JDBC
-(prevents possible SQL-injection attacks)
-Fix some errors in HAVE_INT64_TIMESTAMP code paths
-Fix corner case for btree search in parallel with first root page split
-
-
-
-
-  Release 7.3.4
-
-  
-  Release date
-  2003-07-24
-  
-
-  
-   This has a variety of fixes from 7.3.3.
-  
-
-
-  
-   Migration to Version 7.3.4
-
-   
-    A dump/restore is not required for those
-    running 7.3.*.
-   
-  
-
-  
-   Changes
-
-
-Repair breakage in timestamp-to-date conversion for dates before 2000
-Prevent rare possibility of server startup failure (Tom)
-Fix bugs in interval-to-time conversion (Tom)
-Add constraint names in a few places in pg_dump (Rod)
-Improve performance of functions with many parameters (Tom)
-Fix to_ascii() buffer overruns (Tom)
-Prevent restore of database comments from throwing an error (Tom)
-Work around buggy strxfrm() present in some Solaris releases (Tom)
-Properly escape jdbc setObject() strings to improve security (Barry)
-
-  
-
-
-
Release 7.3.3
-
-  Release date
-  2003-05-22
-
-  This release contains a variety of fixes for version 7.3.2.
-
-  Migration to Version 7.3.3
-
-  
-   A dump/restore is not required for those
-   running version 7.3.*.
-  
-
-  Changes
-
-
-Repair sometimes-incorrect computation of StartUpID after a crash
-Avoid slowness with lots of deferred triggers in one transaction (Stephan)
-Don't lock referenced row when UPDATE doesn't change foreign key's value (Jan)
-Use -fPIC not -fpic on Sparc (Tom Callaway)
-Repair lack of schema-awareness in contrib/reindexdb
-Fix contrib/intarray error for zero-element result array (Teodor)
-Ensure createuser script will exit on control-C (Oliver)
-Fix errors when the type of a dropped column has itself been dropped
-CHECKPOINT does not cause database panic on failure in noncritical steps
-Accept 60 in seconds fields of timestamp, time, interval input values
-Issue notice, not error, if TIMESTAMP,
- TIME, or INTERVAL precision too large
-Fix abstime-to-time cast function (fix is
-      not applied unless you initdb)
-Fix pg_proc entry for
-     timestampt_izone (fix is not applied unless you
-       initdb)
-Make EXTRACT(EPOCH FROM timestamp without time zone) treat input as local time
-'now'::timestamptz gave wrong answer if timezone changed earlier in transaction
-HAVE_INT64_TIMESTAMP code for time with timezone overwrote its input
-Accept GLOBAL TEMP/TEMPORARY as a
-      synonym for TEMPORARY
-Avoid improper schema-privilege-check failure in foreign-key triggers
-Fix bugs in foreign-key triggers for SET DEFAULT action
-Fix incorrect time-qual check in row fetch for
-      UPDATE and DELETE triggers
-Foreign-key clauses were parsed but ignored in
-      ALTER TABLE ADD COLUMN
-Fix createlang script breakage for case where handler function already exists
-Fix misbehavior on zero-column tables in pg_dump, COPY, ANALYZE, other places
-Fix misbehavior of func_error() on type names containing '%'
-Fix misbehavior of replace() on strings containing '%'
-Regular-expression patterns containing certain multibyte characters failed
-Account correctly for NULLs in more cases in join size estimation
-Avoid conflict with system definition of isblank() function or macro
-Fix failure to convert large code point values in EUC_TW conversions (Tatsuo)
-Fix error recovery for SSL_read/SSL_write calls
-Don't do early constant-folding of type coercion expressions
-Validate page header fields immediately after reading in any page
-Repair incorrect check for ungrouped variables in unnamed joins
-Fix buffer overrun in to_ascii (Guido Notari)
-contrib/ltree fixes (Teodor)
-Fix core dump in deadlock detection on machines where char is unsigned
-Avoid running out of buffers in many-way indexscan (bug introduced in 7.3)
-Fix planner's selectivity estimation functions to handle domains properly
-Fix dbmirror memory-allocation bug (Steven Singer)
-Prevent infinite loop in ln(numeric) due to roundoff error
-GROUP BY got confused if there were multiple equal GROUP BY items
-Fix bad plan when inherited UPDATE/DELETE references another inherited table
-Prevent clustering on incomplete (partial or non-NULL-storing) indexes
-Service shutdown request at proper time if it arrives while still starting up
-Fix left-links in temporary indexes (could make backwards scans miss entries)
-Fix incorrect handling of client_encoding setting in postgresql.conf (Tatsuo)
-Fix failure to respond to pg_ctl stop -m fast after Async_NotifyHandler runs
-Fix SPI for case where rule contains multiple statements of the same type
-Fix problem with checking for wrong type of access privilege in rule query
-Fix problem with EXCEPT in CREATE RULE
-Prevent problem with dropping temp tables having serial columns
-Fix replace_vars_with_subplan_refs failure in complex views
-Fix regexp slowness in single-byte encodings (Tatsuo)
-Allow qualified type names in CREATE CAST
-      and  DROP CAST
-Accept SETOF type[], which formerly had to
-      be written SETOF _type
-Fix pg_dump core dump in some cases with procedural languages
-Force ISO datestyle in pg_dump output, for portability (Oliver)
-pg_dump failed to handle error return
-      from lo_read (Oleg Drokin)
-pg_dumpall failed with groups having no members (Nick Eskelinen)
-pg_dumpall failed to recognize --globals-only switch
-pg_restore failed to restore blobs if -X disable-triggers is specified
-Repair intrafunction memory leak in plpgsql
-pltcl's elog command dumped core if given wrong parameters (Ian Harding)
-plpython used wrong value of atttypmod (Brad McLean)
-Fix improper quoting of boolean values in Python interface (D'Arcy)
-Added addDataType() method to PGConnection interface for JDBC
-Fixed various problems with updateable ResultSets for JDBC (Shawn Green)
-Fixed various problems with DatabaseMetaData for JDBC (Kris Jurka, Peter Royal)
-Fixed problem with parsing table ACLs in JDBC
-Better error message for character set conversion problems in JDBC
-
-
-
-
-
Release 7.3.2
-
-  Release date
-  2003-02-04
-
-  This release contains a variety of fixes for version 7.3.1.
-
-
-  Migration to Version 7.3.2
-
-  
-   A dump/restore is not required for those
-   running version 7.3.*.
-  
-
-  Changes
-
-
-Restore creation of OID column in CREATE TABLE AS / SELECT INTO
-Fix pg_dump core dump when dumping views having comments
-Dump DEFERRABLE/INITIALLY DEFERRED constraints properly
-Fix UPDATE when child table's column numbering differs from parent
-Increase default value of max_fsm_relations
-Fix problem when fetching backwards in a cursor for a single-row query
-Make backward fetch work properly with cursor on SELECT DISTINCT query
-Fix problems with loading pg_dump files containing contrib/lo usage
-Fix problem with all-numeric user names
-Fix possible memory leak and core dump during disconnect in libpgtcl
-Make plpython's spi_execute command handle nulls properly (Andrew Bosma)
-Adjust plpython error reporting so that its regression test passes again
-Work with bison 1.875
-Handle mixed-case names properly in plpgsql's %type (Neil)
-Fix core dump in pltcl when executing a query rewritten by a rule
-Repair array subscript overruns (per report from Yichen Xie)
-Reduce MAX_TIME_PRECISION from 13 to 10 in floating-point case
-Correctly case-fold variable names in per-database and per-user settings
-Fix coredump in plpgsql's RETURN NEXT when SELECT into record returns no rows
-Fix outdated use of pg_type.typprtlen in python client interface
-Correctly handle fractional seconds in timestamps in JDBC driver
-Improve performance of getImportedKeys() in JDBC
-Make shared-library symlinks work standardly on HPUX (Giles)
-Repair inconsistent rounding behavior for timestamp, time, interval
-SSL negotiation fixes (Nathan Mueller)
-Make libpq's ~/.pgpass feature work when connecting with PQconnectDB
-Update my2pg, ora2pg
-Translation updates
-Add casts between types lo and oid in contrib/lo
-fastpath code now checks for privilege to call function
-
-
-
-
-
Release 7.3.1
-
-  Release date
-  2002-12-18
-
-  This release contains a variety of fixes for version 7.3.
-
-
-  Migration to Version 7.3.1
-
-  
-   A dump/restore is not required for those
-   running version 7.3. However, it should be noted that the main
-   PostgreSQL interface library, libpq,
-   has a new major version number for this release, which might require
-   recompilation of client code in certain cases.
-  
-
-  Changes
-
-
-Fix a core dump of COPY TO when client/server encodings don't match (Tom)
-Allow pg_dump to work with pre-7.2 servers (Philip)
-contrib/adddepend fixes (Tom)
-Fix problem with deletion of per-user/per-database config settings (Tom)
-contrib/vacuumlo fix (Tom)
-Allow 'password' encryption even when pg_shadow contains MD5 passwords (Bruce)
-contrib/dbmirror fix (Steven Singer)
-Optimizer fixes (Tom)
-contrib/tsearch fixes (Teodor Sigaev, Magnus)
-Allow locale names to be mixed case (Nicolai Tufar)
-Increment libpq library's major version number (Bruce)
-pg_hba.conf error reporting fixes (Bruce, Neil)
-Add SCO Openserver 5.0.4 as a supported platform (Bruce)
-Prevent EXPLAIN from crashing server (Tom)
-SSL fixes (Nathan Mueller)
-Prevent composite column creation via ALTER TABLE (Tom)
-
-
-
-
-
Release 7.3
-
-  Release date
-  2002-11-27
-
-  Overview
-
-  
-   Major changes in this release:
-  
-
-  
-   
-    Schemas
-    
-     
-      Schemas allow users to create objects in separate namespaces,
-      so two people or applications can have tables with the same
-      name. There is also a public schema for shared tables.
-      Table/index creation can be restricted by removing privileges
-      on the public schema.
-     
-    
-   
-
-   
-    Drop Column
-    
-     
-      PostgreSQL now supports the
-      ALTER TABLE ... DROP COLUMN functionality.
-     
-    
-   
-
-   
-    Table Functions
-    
-     
-      Functions returning multiple rows and/or multiple columns are
-      now much easier to use than before.  You can call such a
-      table function in the SELECT
-      FROM clause, treating its output like a
-      table. Also, PL/pgSQL functions can
-      now return sets.
-     
-    
-   
-
-   
-    Prepared Queries
-    
-     
-      PostgreSQL now supports prepared
-      queries, for improved performance.
-     
-    
-   
-
-   
-    Dependency Tracking
-    
-     
-      PostgreSQL now records object
-      dependencies, which allows improvements in many areas.
-      DROP statements now take either
-      CASCADE or RESTRICT to control whether
-      dependent objects are also dropped.
-     
-    
-   
-
-   
-    Privileges
-    
-     
-      Functions and procedural languages now have privileges, and
-      functions can be defined to run with the privileges of their
-      creator.
-     
-    
-   
-
-   
-    Internationalization
-    
-     
-      Both multibyte and locale support are now always enabled.
-     
-    
-   
-
-   
-    Logging
-    
-     
-      A variety of logging options have been enhanced.
-     
-    
-   
-
-   
-    Interfaces
-    
-     
-      A large number of interfaces have been moved to 
-      url="http://gborg.postgresql.org">http://gborg.postgresql.org
-      where they can be developed and released independently.
-     
-    
-   
-
-   
-    Functions/Identifiers
-    
-     
-      By default, functions can now take up to 32 parameters, and
-      identifiers can be up to 63 bytes long.  Also, OPAQUE
-      is now deprecated: there are specific pseudo-datatypes
-      to represent each of the former meanings of OPAQUE
-      in function argument and result types.
-     
-    
-   
-
-  
-
-  Migration to Version 7.3
-
-  
-   A dump/restore using pg_dump is required for those
-   wishing to migrate data from any previous release. If your
-   application examines the system catalogs, additional changes will
-   be required due to the introduction of schemas in 7.3; for more
-   information, see: 
-   url="http://developer.postgresql.org/~momjian/upgrade_tips_7.3">.
-  
-
-  
-   Observe the following incompatibilities:
-  
-
-  
-   
-    
-     Pre-6.3 clients are no longer supported.
-    
-   
-
-   
-    
-     pg_hba.conf now has a column for the user
-     name and additional features.  Existing files need to be
-     adjusted.
-    
-   
-
-   
-    
-     Several postgresql.conf logging parameters
-     have been renamed.
-    
-   
-
-   
-    
-     LIMIT #,# has been disabled; use
-     LIMIT # OFFSET #.
-    
-   
-
-   
-    
-     INSERT statements with column lists must
-     specify a value for each specified column. For example,
-     INSERT INTO tab (col1, col2) VALUES ('val1')
-     is now invalid.  It's still allowed to supply fewer columns than
-     expected if the INSERT does not have a column list.
-    
-   
-
-   
-    
-     serial columns are no longer automatically
-     UNIQUE; thus, an index will not automatically be
-     created.
-    
-   
-
-   
-    
-     A SET command inside an aborted transaction
-     is now rolled back.
-    
-   
-
-   
-    
-     COPY no longer considers missing trailing
-     columns to be null.  All columns need to be specified.
-     (However, one can achieve a similar effect by specifying a
-     column list in the COPY command.)
-    
-   
-
-   
-    
-     The data type timestamp is now equivalent to
-     timestamp without time zone, instead of
-     timestamp with time zone.
-    
-   
-
-   
-    
-     Pre-7.3 databases loaded into 7.3 will not have the new object
-     dependencies for serial columns, unique
-     constraints, and foreign keys. See the directory
-     contrib/adddepend/ for a detailed
-     description and a script that will add such dependencies.
-    
-   
-
-   
-    
-     An empty string ('') is no longer allowed as
-     the input into an integer field.  Formerly, it was silently
-     interpreted as 0.
-    
-   
-
-  
-
-  Changes
-
-  
-   Server Operation
-
-Add pg_locks view to show locks (Neil)
-Security fixes for password negotiation memory allocation (Neil)
-Remove support for version 0 FE/BE protocol (PostgreSQL 6.2 and earlier) (Tom)
-Reserve the last few backend slots for superusers, add parameter superuser_reserved_connections to control this (Nigel J. Andrews)
-
-  
-
-  
-   Performance
-
-Improve startup by calling localtime() only once (Tom)
-Cache system catalog information in flat files for faster startup (Tom)
-Improve caching of index information (Tom)
-Optimizer improvements (Tom, Fernando Nasser)
-Catalog caches now store failed lookups (Tom)
-Hash function improvements (Neil)
-Improve performance of query tokenization and network handling (Peter)
-Speed improvement for large object restore (Mario Weilguni)
-Mark expired index entries on first lookup, saving later heap fetches (Tom)
-Avoid excessive NULL bitmap padding (Manfred Koizar)
-Add BSD-licensed qsort() for Solaris, for performance (Bruce)
-Reduce per-row overhead by four bytes (Manfred Koizar)
-Fix GEQO optimizer bug (Neil Conway)
-Make WITHOUT OID actually save four bytes per row (Manfred Koizar)
-Add default_statistics_target variable to specify ANALYZE buckets (Neil)
-Use local buffer cache for temporary tables so no WAL overhead (Tom)
-Improve free space map performance on large tables (Stephen Marshall, Tom)
-Improved WAL write concurrency (Tom)
-
-  
-
-  
-   Privileges
-
-Add privileges on functions and procedural languages (Peter)
-Add OWNER to CREATE DATABASE so superusers can create databases on behalf of unprivileged users (Gavin Sherry, Tom)
-Add new object privilege bits EXECUTE and USAGE (Tom)
-Add SET SESSION AUTHORIZATION DEFAULT and RESET SESSION AUTHORIZATION (Tom)
-Allow functions to be executed with the privilege of the function owner (Peter)
-
-  
-
-  
-   Server Configuration
-
-Server log messages now tagged with LOG, not DEBUG (Bruce)
-Add user column to pg_hba.conf (Bruce)
-Have log_connections output two lines in log file (Tom)
-Remove debug_level from postgresql.conf, now server_min_messages (Bruce)
-New ALTER DATABASE/USER ... SET command for per-user/database initialization (Peter)
-New parameters server_min_messages and client_min_messages to control which messages are sent to the server logs or client applications (Bruce)
-Allow pg_hba.conf to specify lists of users/databases separated by commas, group names prepended with +, and file names prepended with @ (Bruce)
-Remove secondary password file capability and pg_password utility (Bruce)
-Add variable db_user_namespace for database-local user names (Bruce)
-SSL improvements (Bear Giles)
-Make encryption of stored passwords the default (Bruce)
-Allow pg_statistics to be reset by calling pg_stat_reset() (Christopher)
-Add log_duration parameter (Bruce)
-Rename debug_print_query to log_statement (Bruce)
-Rename show_query_stats to show_statement_stats (Bruce)
-Add param log_min_error_statement to print commands to logs on error (Gavin)
-
-  
-
-  
-   Queries
-
-Make cursors insensitive, meaning their contents do not change (Tom)
-Disable LIMIT #,# syntax; now only LIMIT # OFFSET # supported (Bruce)
-Increase identifier length to 63 (Neil, Bruce)
-UNION fixes for merging >= 3 columns of different lengths (Tom)
-Add DEFAULT key word to INSERT, e.g., INSERT ... (..., DEFAULT, ...) (Rod)
-Allow views to have default values using ALTER COLUMN ... SET DEFAULT (Neil)
-Fail on INSERTs with column lists that don't supply all column values, e.g., INSERT INTO tab (col1, col2) VALUES ('val1');  (Rod)
-Fix for join aliases (Tom)
-Fix for FULL OUTER JOINs (Tom)
-Improve reporting of invalid identifier and location (Tom, Gavin)
-Fix OPEN cursor(args) (Tom)
-Allow 'ctid' to be used in a view and currtid(viewname) (Hiroshi)
-Fix for CREATE TABLE AS with UNION (Tom)
-SQL99 syntax improvements (Thomas)
-Add statement_timeout variable to cancel queries (Bruce)
-Allow prepared queries with PREPARE/EXECUTE (Neil)
-Allow FOR UPDATE to appear after LIMIT/OFFSET (Bruce)
-Add variable autocommit (Tom, David Van Wie)
-
-  
-
-  
-   Object Manipulation
-
-Make equals signs optional in CREATE DATABASE (Gavin Sherry)
-Make ALTER TABLE OWNER change index ownership too (Neil)
-New ALTER TABLE tabname ALTER COLUMN colname SET STORAGE controls TOAST storage, compression (John Gray)
-Add schema support, CREATE/DROP SCHEMA (Tom)
-Create schema for temporary tables (Tom)
-Add variable search_path for schema search (Tom)
-Add ALTER TABLE SET/DROP NOT NULL (Christopher)
-New CREATE FUNCTION volatility levels (Tom)
-Make rule names unique only per table (Tom)
-Add 'ON tablename' clause to DROP RULE and COMMENT ON RULE (Tom)
-Add ALTER TRIGGER RENAME (Joe)
-New current_schema() and current_schemas() inquiry functions (Tom)
-Allow functions to return multiple rows (table functions) (Joe)
-Make WITH optional in CREATE DATABASE, for consistency (Bruce)
-Add object dependency tracking (Rod, Tom)
-Add RESTRICT/CASCADE to DROP commands (Rod)
-Add ALTER TABLE DROP for non-CHECK CONSTRAINT (Rod)
-Autodestroy sequence on DROP of table with SERIAL (Rod)
-Prevent column dropping if column is used by foreign key (Rod)
-Automatically drop constraints/functions when object is dropped (Rod)
-Add CREATE/DROP OPERATOR CLASS (Bill Studenmund, Tom)
-Add ALTER TABLE DROP COLUMN (Christopher, Tom, Hiroshi)
-Prevent inherited columns from being removed or renamed (Alvaro Herrera)
-Fix foreign key constraints to not error on intermediate database states (Stephan)
-Propagate column or table renaming to foreign key constraints
-Add CREATE OR REPLACE VIEW (Gavin, Neil, Tom)
-Add CREATE OR REPLACE RULE (Gavin, Neil, Tom)
-Have rules execute alphabetically, returning more predictable values (Tom)
-Triggers are now fired in alphabetical order (Tom)
-Add /contrib/adddepend to handle pre-7.3 object dependencies (Rod)
-Allow better casting when inserting/updating values (Tom)
-
-  
-
-  
-   Utility Commands
-
-Have COPY TO output embedded carriage returns and newlines as \r and \n (Tom)
-Allow DELIMITER in COPY FROM to be 8-bit clean (Tatsuo)
-Make pg_dump use ALTER TABLE ADD PRIMARY KEY, for performance (Neil)
-Disable brackets in multistatement rules (Bruce)
-Disable VACUUM from being called inside a function (Bruce)
-Allow dropdb and other scripts to use identifiers with spaces (Bruce)
-Restrict database comment changes to the current database
-Allow comments on operators, independent of the underlying function (Rod)
-Rollback SET commands in aborted transactions (Tom)
-EXPLAIN now outputs as a query (Tom)
-Display condition expressions and sort keys in EXPLAIN (Tom)
-Add 'SET LOCAL var = value' to set configuration variables for a single transaction (Tom)
-Allow ANALYZE to run in a transaction (Bruce)
-Improve COPY syntax using new WITH clauses, keep backward compatibility (Bruce)
-Fix pg_dump to consistently output tags in non-ASCII dumps (Bruce)
-Make foreign key constraints clearer in dump file (Rod)
-Add COMMENT ON CONSTRAINT (Rod)
-Allow COPY TO/FROM to specify column names (Brent Verner)
-Dump UNIQUE and PRIMARY KEY constraints as ALTER TABLE (Rod)
-Have SHOW output a query result (Joe)
-Generate failure on short COPY lines rather than pad NULLs (Neil)
-Fix CLUSTER to preserve all table attributes (Alvaro Herrera)
-New pg_settings table to view/modify GUC settings (Joe)
-Add smart quoting, portability improvements to pg_dump output (Peter)
-Dump serial columns out as SERIAL (Tom)
-Enable large file support, >2G for pg_dump (Peter, Philip Warner, Bruce)
-Disallow TRUNCATE on tables that are involved in referential constraints (Rod)
-Have TRUNCATE also auto-truncate the toast table of the relation (Tom)
-Add clusterdb utility that will auto-cluster an entire database based on previous CLUSTER operations (Alvaro Herrera)
-Overhaul pg_dumpall (Peter)
-Allow REINDEX of TOAST tables (Tom)
-Implemented START TRANSACTION, per SQL99 (Neil)
-Fix rare index corruption when a page split affects bulk delete (Tom)
-Fix ALTER TABLE ... ADD COLUMN for inheritance (Alvaro Herrera)
-
-  
-
-  
-   Data Types and Functions
-
-Fix factorial(0) to return 1 (Bruce)
-Date/time/timezone improvements (Thomas)
-Fix for array slice extraction (Tom)
-Fix extract/date_part to report proper microseconds for timestamp (Tatsuo)
-Allow text_substr() and bytea_substr() to read TOAST values more efficiently (John Gray)
-Add domain support (Rod)
-Make WITHOUT TIME ZONE the default for TIMESTAMP and TIME data types (Thomas)
-Allow alternate storage scheme of 64-bit integers for date/time types using --enable-integer-datetimes in configure (Thomas)
-Make timezone(timestamptz) return timestamp rather than a string (Thomas)
-Allow fractional seconds in date/time types for dates prior to 1BC (Thomas)
-Limit timestamp data types to 6 decimal places of precision (Thomas)
-Change timezone conversion functions from timetz() to timezone() (Thomas)
-Add configuration variables datestyle and timezone (Tom)
-Add OVERLAY(), which allows substitution of a substring in a string (Thomas)
-Add SIMILAR TO (Thomas, Tom)
-Add regular expression SUBSTRING(string FROM pat FOR escape) (Thomas)
-Add LOCALTIME and LOCALTIMESTAMP functions (Thomas)
-Add named composite types using CREATE TYPE typename AS (column) (Joe)
-Allow composite type definition in the table alias clause (Joe)
-Add new API to simplify creation of C language table functions (Joe)
-Remove ODBC-compatible empty parentheses from calls to SQL99 functions for which these parentheses do not match the standard (Thomas)
-Allow macaddr data type to accept 12 hex digits with no separators (Mike Wyer)
-Add CREATE/DROP CAST (Peter)
-Add IS DISTINCT FROM operator (Thomas)
-Add SQL99 TREAT() function, synonym for CAST() (Thomas)
-Add pg_backend_pid() to output backend pid (Bruce)
-Add IS OF / IS NOT OF type predicate (Thomas)
-Allow bit string constants without fully-specified length (Thomas)
-Allow conversion between 8-byte integers and bit strings (Thomas)
-Implement hex literal conversion to bit string literal (Thomas)
-Allow table functions to appear in the FROM clause (Joe)
-Increase maximum number of function parameters to 32 (Bruce)
-No longer automatically create index for SERIAL column (Tom)
-Add current_database() (Rod)
-Fix cash_words() to not overflow buffer (Tom)
-Add functions replace(), split_part(), to_hex() (Joe)
-Fix LIKE for bytea as a right-hand argument (Joe)
-Prevent crashes caused by SELECT cash_out(2) (Tom)
-Fix to_char(1,'FM999.99') to return a period (Karel)
-Fix trigger/type/language functions returning OPAQUE to return proper type (Tom)
-
-  
-
-  
-   Internationalization
-
-Add additional encodings: Korean (JOHAB), Thai (WIN874), Vietnamese (TCVN), Arabic (WIN1256), Simplified Chinese (GBK), Korean (UHC) (Eiji Tokuya)
-Enable locale support by default (Peter)
-Add locale variables (Peter)
-Escape byes >= 0x7f for multibyte in PQescapeBytea/PQunescapeBytea (Tatsuo)
-Add locale awareness to regular expression character classes
-Enable multibyte support by default (Tatsuo)
-Add GB18030 multibyte support (Bill Huang)
-Add CREATE/DROP CONVERSION, allowing loadable encodings (Tatsuo, Kaori)
-Add pg_conversion table (Tatsuo)
-Add SQL99 CONVERT() function (Tatsuo)
-pg_dumpall, pg_controldata, and pg_resetxlog now national-language aware (Peter)
-New and updated translations
-
-  
-
-  
-   Server-side Languages
-
-Allow recursive SQL function (Peter)
-Change PL/Tcl build to use configured compiler and Makefile.shlib (Peter)
-Overhaul the PL/pgSQL FOUND variable to be more Oracle-compatible (Neil, Tom)
-Allow PL/pgSQL to handle quoted identifiers (Tom)
-Allow set-returning PL/pgSQL functions (Neil)
-Make PL/pgSQL schema-aware (Joe)
-Remove some memory leaks (Nigel J. Andrews, Tom)
-
-  
-
-  
-   psql
-
-Don't lowercase psql \connect database name for 7.2.0 compatibility (Tom)
-Add psql \timing to time user queries (Greg Sabino Mullane)
-Have psql \d show index information (Greg Sabino Mullane)
-New psql \dD shows domains (Jonathan Eisler)
-Allow psql to show rules on views (Paul ?)
-Fix for psql variable substitution (Tom)
-Allow psql \d to show temporary table structure (Tom)
-Allow psql \d to show foreign keys (Rod)
-Fix \? to honor \pset pager (Bruce)
-Have psql reports its version number on startup (Tom)
-Allow \copy to specify column names (Tom)
-
-  
-
-  
-   libpq
-
-Add ~/.pgpass to store host/user password combinations (Alvaro Herrera)
-Add PQunescapeBytea() function to libpq (Patrick Welche)
-Fix for sending large queries over non-blocking connections (Bernhard Herzog)
-Fix for libpq using timers on Win9X (David Ford)
-Allow libpq notify to handle servers with different-length identifiers (Tom)
-Add libpq PQescapeString() and PQescapeBytea() to Windows (Bruce)
-Fix for SSL with non-blocking connections (Jack Bates)
-Add libpq connection timeout parameter (Denis A Ustimenko)
-
-  
-
-  
-   JDBC
-
-Allow JDBC to compile with JDK 1.4 (Dave)
-Add JDBC 3 support (Barry)
-Allows JDBC to set loglevel by adding ?loglevel=X to the connection URL (Barry)
-Add Driver.info() message that prints out the version number (Barry)
-Add updateable result sets (Raghu Nidagal, Dave)
-Add support for callable statements (Paul Bethe)
-Add query cancel capability
-Add refresh row (Dave)
-Fix MD5 encryption handling for multibyte servers (Jun Kawai)
-Add support for prepared statements (Barry)
-
-  
-
-  
-   Miscellaneous Interfaces
-
-Fixed ECPG bug concerning octal numbers in single quotes (Michael)
-Move src/interfaces/libpgeasy to http://gborg.postgresql.org (Marc, Bruce)
-Improve Python interface (Elliot Lee, Andrew Johnson, Greg Copeland)
-Add libpgtcl connection close event (Gerhard Hintermayer)
-Move src/interfaces/libpq++ to http://gborg.postgresql.org (Marc, Bruce)
-Move src/interfaces/odbc to http://gborg.postgresql.org (Marc)
-Move src/interfaces/libpgeasy to http://gborg.postgresql.org (Marc, Bruce)
-Move src/interfaces/perl5 to http://gborg.postgresql.org (Marc, Bruce)
-Remove src/bin/pgaccess from main tree, now at http://www.pgaccess.org (Bruce)
-Add pg_on_connection_loss command to libpgtcl (Gerhard Hintermayer, Tom)
-
-  
-
-  
-   Source Code
-
-Fix for parallel make (Peter)
-AIX fixes for linking Tcl (Andreas Zeugswetter)
-Allow PL/Perl to build under Cygwin (Jason Tishler)
-Improve MIPS compiles (Peter, Oliver Elphick)
-Require Autoconf version 2.53 (Peter)
-Require readline and zlib by default in configure (Peter)
-Allow Solaris to use Intimate Shared Memory (ISM), for performance (Scott Brunza, P.J. Josh Rovero)
-Always enable syslog in compile, remove --enable-syslog option (Tatsuo)
-Always enable multibyte in compile, remove --enable-multibyte option (Tatsuo)
-Always enable locale in compile, remove --enable-locale option (Peter)
-Fix for Win9x DLL creation (Magnus Naeslund)
-Fix for link() usage by WAL code on Windows, BeOS (Jason Tishler)
-Add sys/types.h to c.h, remove from main files (Peter, Bruce)
-Fix AIX hang on SMP machines (Tomoyuki Niijima)
-AIX SMP hang fix (Tomoyuki Niijima)
-Fix pre-1970 date handling on newer glibc libraries (Tom)
-Fix PowerPC SMP locking (Tom)
-Prevent gcc -ffast-math from being used (Peter, Tom)
-Bison >= 1.50 now required for developer builds
-Kerberos 5 support now builds with Heimdal (Peter)
-Add appendix in the User's Guide which lists SQL features (Thomas)
-Improve loadable module linking to use RTLD_NOW (Tom)
-New error levels WARNING, INFO, LOG, DEBUG[1-5] (Bruce)
-New src/port directory holds replaced libc functions (Peter, Bruce)
-New pg_namespace system catalog for schemas (Tom)
-Add pg_class.relnamespace for schemas (Tom)
-Add pg_type.typnamespace for schemas (Tom)
-Add pg_proc.pronamespace for schemas (Tom)
-Restructure aggregates to have pg_proc entries (Tom)
-System relations now have their own namespace, pg_* test not required (Fernando Nasser)
-Rename TOAST index names to be *_index rather than *_idx (Neil)
-Add namespaces for operators, opclasses (Tom)
-Add additional checks to server control file (Thomas)
-New Polish FAQ (Marcin Mazurek)
-Add Posix semaphore support (Tom)
-Document need for reindex (Bruce)
-Rename some internal identifiers to simplify Windows compile (Jan, Katherine Ward)
-Add documentation on computing disk space (Bruce)
-Remove KSQO from GUC (Bruce)
-Fix memory leak in rtree (Kenneth Been)
-Modify a few error messages for consistency (Bruce)
-Remove unused system table columns (Peter)
-Make system columns NOT NULL where appropriate (Tom)
-Clean up use of sprintf in favor of snprintf() (Neil, Jukka Holappa)
-Remove OPAQUE and create specific subtypes (Tom)
-Cleanups in array internal handling (Joe, Tom)
-Disallow pg_atoi('') (Bruce)
-Remove parameter wal_files because WAL files are now recycled (Bruce)
-Add version numbers to heap pages (Tom)
-
-  
-
-  
-   Contrib
-
-Allow inet arrays in /contrib/array (Neil)
-GiST fixes (Teodor Sigaev, Neil)
-Upgrade /contrib/mysql
-Add /contrib/dbsize which shows table sizes without vacuum (Peter)
-Add /contrib/intagg, integer aggregator routines (mlw)
-Improve /contrib/oid2name (Neil, Bruce)
-Improve /contrib/tsearch (Oleg, Teodor Sigaev)
-Cleanups of /contrib/rserver (Alexey V. Borzov)
-Update /contrib/oracle conversion utility (Gilles Darold)
-Update /contrib/dblink (Joe)
-Improve options supported by /contrib/vacuumlo (Mario Weilguni)
-Improvements to /contrib/intarray (Oleg, Teodor Sigaev, Andrey Oktyabrski)
-Add /contrib/reindexdb utility (Shaun Thomas)
-Add indexing to /contrib/isbn_issn (Dan Weston)
-Add /contrib/dbmirror (Steven Singer)
-Improve /contrib/pgbench (Neil)
-Add /contrib/tablefunc table function examples (Joe)
-Add /contrib/ltree data type for tree structures (Teodor Sigaev, Oleg Bartunov)
-Move /contrib/pg_controldata, pg_resetxlog into main tree (Bruce)
-Fixes to /contrib/cube (Bruno Wolff)
-Improve /contrib/fulltextindex (Christopher)
-
-  
-
-
-
-  Release 7.2.8
-
-  
-  Release date
-  2005-05-09
-  
-
-  
-   This release contains a variety of fixes from 7.2.7, including one
-   security-related issue.
-  
-
-  
-   Migration to Version 7.2.8
-
-   
-    A dump/restore is not required for those running 7.2.X.
-   
-  
-
-  
-   Changes
-
-
-Repair ancient race condition that allowed a transaction to be
-seen as committed for some purposes (eg SELECT FOR UPDATE) slightly sooner
-than for other purposes
-This is an extremely serious bug since it could lead to apparent
-data inconsistencies being briefly visible to applications.
-Repair race condition between relation extension and
-VACUUM
-This could theoretically have caused loss of a page's worth of
-freshly-inserted data, although the scenario seems of very low probability.
-There are no known cases of it having caused more than an Assert failure.
-
-Fix EXTRACT(EPOCH) for
-TIME WITH TIME ZONE values
-Additional buffer overrun checks in plpgsql
-(Neil)
-Fix pg_dump to dump index names and trigger names containing
-% correctly (Neil)
-Prevent to_char(interval) from dumping core for
-month-related formats
-Fix contrib/pgcrypto for newer OpenSSL builds
-(Marko Kreen)
-
-
-
-
-  Release 7.2.7
-
-  
-  Release date
-  2005-01-31
-  
-
-  
-   This release contains a variety of fixes from 7.2.6, including several
-   security-related issues.
-  
-
-  
-   Migration to Version 7.2.7
-
-   
-    A dump/restore is not required for those running 7.2.X.
-   
-  
-
-  
-   Changes
-
-
-Disallow LOAD to non-superusers
-
-On platforms that will automatically execute initialization functions of a
-shared library (this includes at least Windows and ELF-based Unixen),
-LOAD can be used to make the server execute arbitrary code.
-Thanks to NGS Software for reporting this.
-Add needed STRICT marking to some contrib functions (Kris
-Jurka)
-Avoid buffer overrun when plpgsql cursor declaration has too
-many parameters (Neil)
-Fix planning error for FULL and RIGHT outer joins
-
-The result of the join was mistakenly supposed to be sorted the same as the
-left input.  This could not only deliver mis-sorted output to the user, but
-in case of nested merge joins could give outright wrong answers.
-
-Fix display of negative intervals in SQL and GERMAN
-datestyles
-
-
-
-
-  Release 7.2.6
-
-  
-  Release date
-  2004-10-22
-  
-
-  
-   This release contains a variety of fixes from 7.2.5.
-  
-
-
-  
-   Migration to Version 7.2.6
-
-   
-    A dump/restore is not required for those running 7.2.X.
-   
-  
-
-  
-   Changes
-
-
-Repair possible failure to update hint bits on disk
-
-Under rare circumstances this oversight could lead to
-could not access transaction status failures, which qualifies
-it as a potential-data-loss bug.
-
-Ensure that hashed outer join does not miss tuples
-
-Very large left joins using a hash join plan could fail to output unmatched
-left-side rows given just the right data distribution.
-
-Disallow running pg_ctl as root
-
-This is to guard against any possible security issues.
-
-Avoid using temp files in /tmp in make_oidjoins_check
-
-This has been reported as a security issue, though it's hardly worthy of
-concern since there is no reason for non-developers to use this script anyway.
-
-Update to newer versions of Bison
-
-
-
-
-  Release 7.2.5
-
-  
-  Release date
-  2004-08-16
-  
-
-  
-   This release contains a variety of fixes from 7.2.4.
-  
-
-
-  
-   Migration to Version 7.2.5
-
-   
-    A dump/restore is not required for those running 7.2.X.
-   
-  
-
-  
-   Changes
-
-
-Prevent possible loss of committed transactions during crash
-
-Due to insufficient interlocking between transaction commit and checkpointing,
-it was possible for transactions committed just before the most recent
-checkpoint to be lost, in whole or in part, following a database crash and
-restart.  This is a serious bug that has existed
-since PostgreSQL 7.1.
-
-Fix corner case for btree search in parallel with first root page split
-Fix buffer overrun in to_ascii (Guido Notari)
-Fix core dump in deadlock detection on machines where char is unsigned
-Fix failure to respond to pg_ctl stop -m fast after Async_NotifyHandler runs
-Repair memory leaks in pg_dump
-Avoid conflict with system definition of isblank() function or macro
-
-
-
-
Release 7.2.4
-
-  Release date
-  2003-01-30
-
-  This release contains a variety of fixes for version 7.2.3,
-  including fixes to prevent possible data loss.
-
-  Migration to Version 7.2.4
-
-  
-   A dump/restore is not required for those
-   running version 7.2.*.
-  
-
-  Changes
-
-
-Fix some additional cases of VACUUM "No one parent tuple was found" error
-Prevent VACUUM from being called inside a function  (Bruce)
-Ensure pg_clog updates are sync'd to disk before marking checkpoint complete
-Avoid integer overflow during large hash joins
-Make GROUP commands work when pg_group.grolist is large enough to be toasted
-Fix errors in datetime tables; some timezone names weren't being recognized
-Fix integer overflows in circle_poly(), path_encode(), path_add()  (Neil)
-Repair long-standing logic errors in lseg_eq(), lseg_ne(), lseg_center()
-
-
-
-
-
Release 7.2.3
-
-  Release date
-  2002-10-01
-
-  This release contains a variety of fixes for version 7.2.2,
-  including fixes to prevent possible data loss.
-
-  Migration to Version 7.2.3
-
-  
-   A dump/restore is not required for those
-   running version 7.2.*.
-  
-
-  Changes
-
-
-Prevent possible compressed transaction log loss (Tom)
-Prevent non-superuser from increasing most recent vacuum info (Tom)
-Handle pre-1970 date values in newer versions of glibc (Tom)
-Fix possible hang during server shutdown
-Prevent spinlock hangs on SMP PPC machines (Tomoyuki Niijima)
-Fix pg_dump to properly dump FULL JOIN USING (Tom)
-
-
-
-
-
Release 7.2.2
-
-  Release date
-  2002-08-23
-
-  This release contains a variety of fixes for version 7.2.1.
-
-  Migration to Version 7.2.2
-
-  
-   A dump/restore is not required for those
-   running version 7.2.*.
-  
-
-  Changes
-
-
-Allow EXECUTE of "CREATE TABLE AS ... SELECT" in PL/pgSQL (Tom)
-Fix for compressed transaction log id wraparound (Tom)
-Fix PQescapeBytea/PQunescapeBytea so that they handle bytes > 0x7f (Tatsuo)
-Fix for psql and pg_dump crashing when invoked with non-existent long options (Tatsuo)
-Fix crash when invoking geometric operators (Tom)
-Allow OPEN cursor(args) (Tom)
-Fix for rtree_gist index build (Teodor)
-Fix for dumping user-defined aggregates (Tom)
-contrib/intarray fixes (Oleg)
-Fix for complex UNION/EXCEPT/INTERSECT queries using parens (Tom)
-Fix to pg_convert (Tatsuo)
-Fix for crash with long DATA strings (Thomas, Neil)
-Fix for repeat(), lpad(), rpad() and long strings (Neil)
-
-
-
-
-
Release 7.2.1
-
-  Release date
-  2002-03-21
-
-  This release contains a variety of fixes for version 7.2.
-
-  Migration to Version 7.2.1
-
-  
-   A dump/restore is not required for those
-   running version 7.2.
-  
-
-  Changes
-
-
-Ensure that sequence counters do not go backwards after a crash (Tom)
-Fix pgaccess kanji-conversion key binding (Tatsuo)
-Optimizer improvements (Tom)
-Cash I/O improvements (Tom)
-New Russian FAQ
-Compile fix for missing AuthBlockSig (Heiko)
-Additional time zones and time zone fixes (Thomas)
-Allow psql \connect to handle mixed case database and user names (Tom)
-Return proper OID on command completion even with ON INSERT rules (Tom)
-Allow COPY FROM to use 8-bit DELIMITERS (Tatsuo)
-Fix bug in extract/date_part for milliseconds/microseconds (Tatsuo)
-Improve handling of multiple UNIONs with different lengths (Tom)
-contrib/btree_gist improvements (Teodor Sigaev)
-contrib/tsearch dictionary improvements, see README.tsearch for an additional installation step (Thomas T. Thai, Teodor Sigaev)
-Fix for array subscripts handling (Tom)
-Allow EXECUTE of "CREATE TABLE AS ... SELECT" in PL/pgSQL (Tom)
-
-
-
-
-
Release 7.2
-
-  Release date
-  2002-02-04
-
-  Overview
-
-  
-   This release improves PostgreSQL for use in
-   high-volume applications.
-  
-
-  
-   Major changes in this release:
-  
-
-  
-   
-    VACUUM
-    
-     
-      Vacuuming no longer locks tables, thus allowing normal user
-      access during the vacuum.  A new VACUUM FULL
-      command does old-style vacuum by locking the table and
-      shrinking the on-disk copy of the table.
-     
-    
-   
-
-   
-    Transactions
-    
-     
-      There is no longer a problem with installations that exceed
-      four billion transactions.
-     
-    
-   
-
-   
-    OIDs
-    
-     
-      OIDs are now optional.  Users can now create tables without
-      OIDs for cases where OID usage is excessive.
-     
-    
-   
-
-   
-    Optimizer
-    
-     
-      The system now computes histogram column statistics during
-      ANALYZE, allowing much better optimizer choices.
-     
-    
-   
-
-   
-    Security
-    
-     
-      A new MD5 encryption option allows more secure storage and
-      transfer of passwords.  A new Unix-domain socket
-      authentication option is available on Linux and BSD systems.
-     
-    
-   
-
-   
-    Statistics
-    
-     
-      Administrators can use the new table access statistics module
-      to get fine-grained information about table and index usage.
-     
-    
-   
-
-   
-    Internationalization
-    
-     
-      Program and library messages can now be displayed in several
-      languages.
-     
-    
-   
-
-  
-
-  Migration to Version 7.2
-
-  
-   A dump/restore using pg_dump is required for
-   those wishing to migrate data from any previous release.
-  
-
-  
-   Observe the following incompatibilities:
-  
-
-  
-   
-    
-     The semantics of the VACUUM command have
-     changed in this release.  You might wish to update your
-     maintenance procedures accordingly.
-    
-   
-
-   
-    
-     In this release, comparisons using = NULL
-     will always return false (or NULL, more precisely).  Previous
-     releases automatically transformed this syntax to IS
-     NULL.  The old behavior can be re-enabled using a
-     postgresql.conf parameter.
-    
-   
-
-   
-    
-     The pg_hba.conf and pg_ident.conf
-     configuration is now only reloaded after receiving a
-     SIGHUP signal, not with each connection.
-    
-   
-
-   
-    
-     The function octet_length() now returns the uncompressed data length.
-    
-   
-
-   
-    
-     The date/time value 'current' is no longer
-     available.  You will need to rewrite your applications.
-    
-   
-
-   
-    
-     The timestamp()time(),
-     and interval() functions are no longer
-     available.  Instead of timestamp(), use
-     timestamp 'string' or CAST.
-    
-   
-
-  
-
-  
-   The SELECT ... LIMIT #,# syntax will be removed
-   in the next release. You should change your queries to use
-   separate LIMIT and OFFSET clauses, e.g. LIMIT 10 OFFSET
-   20.
-  
-
-  Changes
-
-  
-   Server Operation
-
-Create temporary files in a separate directory (Bruce)
-Delete orphaned temporary files on postmaster startup (Bruce)
-Added unique indexes to some system tables (Tom)
-System table operator reorganization (Oleg Bartunov, Teodor Sigaev, Tom)
-Renamed pg_log to pg_clog (Tom)
-Enable SIGTERM, SIGQUIT to kill backends (Jan)
-Removed compile-time limit on number of backends (Tom)
-Better cleanup for semaphore resource failure (Tatsuo, Tom)
-Allow safe transaction ID wraparound (Tom)
-Removed OIDs from some system tables (Tom)
-Removed "triggered data change violation" error check (Tom)
-SPI portal creation of prepared/saved plans (Jan)
-Allow SPI column functions to work for system columns (Tom)
-Long value compression improvement (Tom)
-Statistics collector for table, index access (Jan)
-Truncate extra-long sequence names to a reasonable value (Tom)
-Measure transaction times in milliseconds (Thomas)
-Fix TID sequential scans (Hiroshi)
-Superuser ID now fixed at 1 (Peter E)
-New pg_ctl "reload" option (Tom)
-
-  
-
-  
-   Performance
-
-Optimizer improvements (Tom)
-New histogram column statistics for optimizer (Tom)
-Reuse write-ahead log files rather than discarding them (Tom)
-Cache improvements (Tom)
-IS NULL, IS NOT NULL optimizer improvement (Tom)
-Improve lock manager to reduce lock contention (Tom)
-Keep relcache entries for index access support functions (Tom)
-Allow better selectivity with NaN and infinities in NUMERIC (Tom)
-R-tree performance improvements (Kenneth Been)
-B-tree splits more efficient (Tom)
-
-  
-
-  
-   Privileges
-
-Change UPDATE, DELETE privileges to be distinct (Peter E)
-New REFERENCES, TRIGGER privileges (Peter E)
-Allow GRANT/REVOKE to/from more than one user at a time (Peter E)
-New has_table_privilege() function (Joe Conway)
-Allow non-superuser to vacuum database (Tom)
-New SET SESSION AUTHORIZATION command (Peter E)
-Fix bug in privilege modifications on newly created tables (Tom)
-Disallow access to pg_statistic for non-superuser, add user-accessible views (Tom)
-
-  
-
-  
-   Client Authentication
-
-Fork postmaster before doing authentication to prevent hangs (Peter E)
-Add ident authentication over Unix domain sockets on Linux, *BSD (Helge Bahmann, Oliver Elphick, Teodor Sigaev, Bruce)
-Add a password authentication method that uses MD5 encryption (Bruce)
-Allow encryption of stored passwords using MD5 (Bruce)
-PAM authentication (Dominic J. Eidson)
-Load pg_hba.conf and pg_ident.conf only on startup and SIGHUP (Bruce)
-
-  
-
-  
-   Server Configuration
-
-Interpretation of some time zone abbreviations as Australian rather than North American now settable at run time (Bruce)
-New parameter to set default transaction isolation level (Peter E)
-New parameter to enable conversion of "expr = NULL" into "expr IS NULL", off by default (Peter E)
-New parameter to control memory usage by VACUUM (Tom)
-New parameter to set client authentication timeout (Tom)
-New parameter to set maximum number of open files (Tom)
-
-  
-
-  
-   Queries
-
-Statements added by INSERT rules now execute after the INSERT (Jan)
-Prevent unadorned relation names in target list (Bruce)
-NULLs now sort after all normal values in ORDER BY (Tom)
-New IS UNKNOWN, IS NOT UNKNOWN Boolean tests (Tom)
-New SHARE UPDATE EXCLUSIVE lock mode (Tom)
-New EXPLAIN ANALYZE command that shows run times and row counts (Martijn van Oosterhout)
-Fix problem with LIMIT and subqueries (Tom)
-Fix for LIMIT, DISTINCT ON pushed into subqueries (Tom)
-Fix nested EXCEPT/INTERSECT (Tom)
-
-  
-
-  
-   Schema Manipulation
-
-Fix SERIAL in temporary tables (Bruce)
-Allow temporary sequences (Bruce)
-Sequences now use int8 internally (Tom)
-New SERIAL8 creates int8 columns with sequences, default still SERIAL4 (Tom)
-Make OIDs optional using WITHOUT OIDS (Tom)
-Add %TYPE syntax to CREATE TYPE (Ian Lance Taylor)
-Add ALTER TABLE / DROP CONSTRAINT for CHECK constraints (Christopher Kings-Lynne)
-New CREATE OR REPLACE FUNCTION to alter existing function (preserving the function OID) (Gavin Sherry)
-Add ALTER TABLE / ADD [ UNIQUE | PRIMARY ] (Christopher Kings-Lynne)
-Allow column renaming in views
-Make ALTER TABLE / RENAME COLUMN update column names of indexes (Brent Verner)
-Fix for ALTER TABLE / ADD CONSTRAINT ... CHECK with inherited tables (Stephan Szabo)
-ALTER TABLE RENAME update foreign-key trigger arguments correctly (Brent Verner)
-DROP AGGREGATE and COMMENT ON AGGREGATE now accept an aggtype (Tom)
-Add automatic return type data casting for SQL functions (Tom)
-Allow GiST indexes to handle NULLs and multikey indexes (Oleg Bartunov, Teodor Sigaev, Tom)
-Enable partial indexes (Martijn van Oosterhout)
-
-  
-
-  
-   Utility Commands
-
-Add RESET ALL, SHOW ALL (Marko Kreen)
-CREATE/ALTER USER/GROUP now allow options in any order (Vince)
-Add LOCK A, B, C functionality (Neil Padgett)
-New ENCRYPTED/UNENCRYPTED option to CREATE/ALTER USER (Bruce)
-New light-weight VACUUM does not lock table; old semantics are available as VACUUM FULL (Tom)
-Disable COPY TO/FROM on views (Bruce)
-COPY DELIMITERS string must be exactly one character (Tom)
-VACUUM warning about index tuples fewer than heap now only appears when appropriate (Martijn van Oosterhout)
-Fix privilege checks for CREATE INDEX (Tom)
-Disallow inappropriate use of CREATE/DROP INDEX/TRIGGER/VIEW (Tom)
-
-  
-
-  
-   Data Types and Functions
-
-SUM(), AVG(), COUNT() now uses int8 internally for speed (Tom)
-Add convert(), convert2() (Tatsuo)
-New function bit_length() (Peter E)
-Make the "n" in CHAR(n)/VARCHAR(n) represents letters, not bytes (Tatsuo)
-CHAR(), VARCHAR() now reject strings that are too long (Peter E)
-BIT VARYING now rejects bit strings that are too long (Peter E)
-BIT now rejects bit strings that do not match declared size (Peter E)
-INET, CIDR text conversion functions (Alex Pilosov)
-INET, CIDR operators << and <<= indexable (Alex Pilosov)
-Bytea \### now requires valid three digit octal number
-Bytea comparison improvements, now supports =, <>, >, >=, <, and <=
-Bytea now supports B-tree indexes
-Bytea now supports LIKE, LIKE...ESCAPE, NOT LIKE, NOT LIKE...ESCAPE
-Bytea now supports concatenation
-New bytea functions: position, substring, trim, btrim, and length
-New encode() function mode, "escaped", converts minimally escaped bytea to/from text
-Add pg_database_encoding_max_length() (Tatsuo)
-Add pg_client_encoding() function (Tatsuo)
-now() returns time with millisecond precision (Thomas)
-New TIMESTAMP WITHOUT TIMEZONE data type (Thomas)
-Add ISO date/time specification with "T", yyyy-mm-ddThh:mm:ss (Thomas)
-New xid/int comparison functions (Hiroshi)
-Add precision to TIME, TIMESTAMP, and INTERVAL data types (Thomas)
-Modify type coercion logic to attempt binary-compatible functions first (Tom)
-New encode() function installed by default (Marko Kreen)
-Improved to_*() conversion functions (Karel Zak)
-Optimize LIKE/ILIKE when using single-byte encodings (Tatsuo)
-New functions in contrib/pgcrypto: crypt(), hmac(), encrypt(), gen_salt() (Marko Kreen)
-Correct description of translate() function (Bruce)
-Add INTERVAL argument for SET TIME ZONE (Thomas)
-Add INTERVAL YEAR TO MONTH (etc.) syntax (Thomas)
-Optimize length functions when using single-byte encodings (Tatsuo)
-Fix path_inter, path_distance, path_length, dist_ppath to handle closed paths (Curtis Barrett, Tom)
-octet_length(text) now returns non-compressed length (Tatsuo, Bruce)
-Handle "July" full name in date/time literals (Greg Sabino Mullane)
-Some datatype() function calls now evaluated differently
-Add support for Julian and ISO time specifications (Thomas)
-
-  
-
-  
-   Internationalization
-
-National language support in psql, pg_dump, libpq, and server (Peter E)
-Message translations in Chinese (simplified, traditional), Czech, French, German, Hungarian, Russian, Swedish (Peter E, Serguei A. Mokhov, Karel Zak, Weiping He, Zhenbang Wei, Kovacs Zoltan)
-Make trim, ltrim, rtrim, btrim, lpad, rpad, translate multibyte aware (Tatsuo)
-Add LATIN5,6,7,8,9,10 support (Tatsuo)
-Add ISO 8859-5,6,7,8 support (Tatsuo)
-Correct LATIN5 to mean ISO-8859-9, not ISO-8859-5 (Tatsuo)
-Make mic2ascii() non-ASCII aware (Tatsuo)
-Reject invalid multibyte character sequences (Tatsuo)
-
-  
-
-  
-   <application>PL/pgSQL</>
-
-Now uses portals for SELECT loops, allowing huge result sets (Jan)
-CURSOR and REFCURSOR support (Jan)
-Can now return open cursors (Jan)
-Add ELSEIF (Klaus Reger)
-Improve PL/pgSQL error reporting, including location of error (Tom)
-Allow IS or FOR key words in cursor declaration, for compatibility (Bruce)
-Fix for SELECT ... FOR UPDATE (Tom)
-Fix for PERFORM returning multiple rows (Tom)
-Make PL/pgSQL use the server's type coercion code (Tom)
-Memory leak fix (Jan, Tom)
-Make trailing semicolon optional (Tom)
-
-  
-
-  
-   PL/Perl
-
-New untrusted PL/Perl (Alex Pilosov)
-PL/Perl is now built on some platforms even if libperl is not shared (Peter E)
-
-   
-
-  
-   PL/Tcl
-
-Now reports errorInfo (Vsevolod Lobko)
-Add spi_lastoid function ([email protected])
-
-  
-
-  
-   PL/Python
-
-...is new (Andrew Bosma)
-
-  
-
-  
-   <application>psql</>
-
-\d displays indexes in unique, primary groupings (Christopher Kings-Lynne)
-Allow trailing semicolons in backslash commands (Greg Sabino Mullane)
-Read password from /dev/tty if possible
-Force new password prompt when changing user and database (Tatsuo, Tom)
-Format the correct number of columns for Unicode (Patrice)
-
-  
-
-  
-   <application>libpq</>
-
-New function PQescapeString() to escape quotes in command strings (Florian Weimer)
-New function PQescapeBytea() escapes binary strings for use as SQL string literals
-
-  
-
-  
-   JDBC
-
-Return OID of INSERT (Ken K)
-Handle more data types (Ken K)
-Handle single quotes and newlines in strings (Ken K)
-Handle NULL variables (Ken K)
-Fix for time zone handling (Barry Lind)
-Improved Druid support
-Allow eight-bit characters with non-multibyte server (Barry Lind)
-Support BIT, BINARY types (Ned Wolpert)
-Reduce memory usage (Michael Stephens, Dave Cramer)
-Update DatabaseMetaData (Peter E)
-Add DatabaseMetaData.getCatalogs() (Peter E)
-Encoding fixes (Anders Bengtsson)
-Get/setCatalog methods (Jason Davies)
-DatabaseMetaData.getColumns() now returns column defaults (Jason Davies)
-DatabaseMetaData.getColumns() performance improvement (Jeroen van Vianen)
-Some JDBC1 and JDBC2 merging (Anders Bengtsson)
-Transaction performance improvements (Barry Lind)
-Array fixes (Greg Zoller)
-Serialize addition 
-Fix batch processing (Rene Pijlman)
-ExecSQL method reorganization (Anders Bengtsson)
-GetColumn() fixes (Jeroen van Vianen)
-Fix isWriteable() function (Rene Pijlman)
-Improved passage of JDBC2 conformance tests (Rene Pijlman)
-Add bytea type capability (Barry Lind)
-Add isNullable() (Rene Pijlman)
-JDBC date/time test suite fixes (Liam Stewart)
-Fix for SELECT 'id' AS xxx FROM table (Dave Cramer)
-Fix DatabaseMetaData to show precision properly (Mark Lillywhite)
-New getImported/getExported keys (Jason Davies)
-MD5 password encryption support (Jeremy Wohl)
-Fix to actually use type cache (Ned Wolpert)
-
-  
-
-  
-   ODBC
-
-Remove query size limit (Hiroshi)
-Remove text field size limit (Hiroshi)
-Fix for SQLPrimaryKeys in multibyte mode (Hiroshi)
-Allow ODBC procedure calls (Hiroshi)
-Improve boolean handing (Aidan Mountford)
-Most configuration options now settable via DSN (Hiroshi)
-Multibyte, performance fixes (Hiroshi)
-Allow driver to be used with iODBC or unixODBC (Peter E)
-MD5 password encryption support (Bruce)
-Add more compatibility functions to odbc.sql (Peter E)
-
-  
-
-  
-   <application>ECPG</>
-
-EXECUTE ... INTO implemented (Christof Petig)
-Multiple row descriptor support (e.g. CARDINALITY) (Christof Petig)
-Fix for GRANT parameters (Lee Kindness)
-Fix INITIALLY DEFERRED bug
-Various bug fixes (Michael, Christof Petig)
-Auto allocation for indicator variable arrays (int *ind_p=NULL)
-Auto allocation for string arrays (char **foo_pp=NULL)
-ECPGfree_auto_mem fixed
-All function names with external linkage are now prefixed by ECPG
-Fixes for arrays of structures (Michael)
-
-  
-
-  
-   Misc. Interfaces
-
-Python fix fetchone() (Gerhard Haring)
-Use UTF, Unicode in Tcl where appropriate (Vsevolod Lobko, Reinhard Max)
-Add Tcl COPY TO/FROM (ljb)
-Prevent output of default index op class in pg_dump (Tom)
-Fix libpgeasy memory leak (Bruce)
-
-  
-
-  
-   Build and Install
-
-Configure, dynamic loader, and shared library fixes (Peter E)
-Fixes in QNX 4 port (Bernd Tegge)
-Fixes in Cygwin and Windows ports (Jason Tishler, Gerhard Haring, Dmitry Yurtaev, Darko Prenosil, Mikhail Terekhov)
-Fix for Windows socket communication failures (Magnus, Mikhail Terekhov)
-Hurd compile fix (Oliver Elphick)
-BeOS fixes (Cyril Velter)
-Remove configure --enable-unicode-conversion, now enabled by multibyte (Tatsuo)
-AIX fixes (Tatsuo, Andreas)
-Fix parallel make (Peter E)
-Install SQL language manual pages into OS-specific directories (Peter E)
-Rename config.h to pg_config.h (Peter E)
-Reorganize installation layout of header files (Peter E)
-
-  
-
-  
-   Source Code
-
-Remove SEP_CHAR (Bruce)
-New GUC hooks (Tom)
-Merge GUC and command line handling (Marko Kreen)
-Remove EXTEND INDEX (Martijn van Oosterhout, Tom)
-New pgjindent utility to indent java code (Bruce)
-Remove define of true/false when compiling under C++ (Leandro Fanzone, Tom)
-pgindent fixes (Bruce, Tom)
-Replace strcasecmp() with strcmp() where appropriate (Peter E)
-Dynahash portability improvements (Tom)
-Add 'volatile' usage in spinlock structures
-Improve signal handling logic (Tom)
-
-  
-
-  
-   Contrib
-
-New contrib/rtree_gist (Oleg Bartunov, Teodor Sigaev)
-New contrib/tsearch full-text indexing (Oleg, Teodor Sigaev)
-Add contrib/dblink for remote database access (Joe Conway)
-contrib/ora2pg Oracle conversion utility (Gilles Darold)
-contrib/xml XML conversion utility (John Gray)
-contrib/fulltextindex fixes (Christopher Kings-Lynne)
-New contrib/fuzzystrmatch with levenshtein and metaphone, soundex merged (Joe Conway)
-Add contrib/intarray boolean queries, binary search, fixes (Oleg Bartunov)
-New pg_upgrade utility (Bruce)
-Add new pg_resetxlog options (Bruce, Tom)
-
-  
-
-
-
-  Release 7.1.3
-
-  
-  Release date
-  2001-08-15
-  
-
-  
-   Migration to Version 7.1.3
-
-   
-    A dump/restore is not required for those running
-    7.1.X.
-   
-  
-
-  
-   Changes
-
-   
-    
-Remove unused WAL segments of large transactions (Tom)
-Multiaction rule fix (Tom)
-PL/pgSQL memory allocation fix (Jan)
-VACUUM buffer fix (Tom)
-Regression test fixes (Tom)
-pg_dump fixes for GRANT/REVOKE/comments on views, user-defined types (Tom)
-Fix subselects with DISTINCT ON or LIMIT (Tom)
-BeOS fix
-Disable COPY TO/FROM a view (Tom)
-Cygwin build (Jason Tishler)
-    
-   
-  
-
-
-  Release 7.1.2
-
-  
-  Release date
-  2001-05-11
-  
-
-  
-   This has one fix from 7.1.1.
-  
-
-
-  
-   Migration to Version 7.1.2
-
-   
-    A dump/restore is not required for those running
-    7.1.X.
-   
-  
-
-  
-   Changes
-
-   
-    
-Fix PL/pgSQL SELECTs when returning no rows
-Fix for psql backslash core dump
-Referential integrity privilege fix
-Optimizer fixes
-pg_dump cleanups
-    
-   
-  
-
-
-  Release 7.1.1
-
-  
-  Release date
-  2001-05-05
-  
-
-  
-   This has a variety of fixes from 7.1.
-  
-
-
-  
-   Migration to Version 7.1.1
-
-   
-    A dump/restore is not required for those running
-    7.1.
-   
-  
-
-  
-   Changes
-
-   
-    
-Fix for numeric MODULO operator (Tom)
-pg_dump fixes (Philip)
-pg_dump can dump 7.0 databases (Philip)
-readline 4.2 fixes (Peter E)
-JOIN fixes (Tom)
-AIX, MSWIN, VAX, N32K fixes (Tom)
-Multibytes fixes (Tom)
-Unicode fixes (Tatsuo)
-Optimizer improvements (Tom)
-Fix for whole rows in functions (Tom)
-Fix for pg_ctl and option strings with spaces (Peter E)
-ODBC fixes (Hiroshi)
-EXTRACT can now take string argument (Thomas)
-Python fixes (Darcy)
-    
-   
-  
-
-
-  Release 7.1
-
-  
-  Release date
-  2001-04-13
-  
-
-  
-       This release focuses on removing limitations that have existed in the
-       PostgreSQL code for many years.
-  
-
-  
-   Major changes in this release:
-  
-
-  
-   
-    
-      Write-ahead Log (WAL)
-    
-    
-     
-To maintain database consistency in case of an operating system crash,
-previous releases of PostgreSQL have forced
-all data modifications to disk before each transaction commit.  With
-WAL, only one log file must be flushed to disk, greatly improving
-performance.  If you have been using -F in previous releases to
-disable disk flushes, you might want to consider discontinuing its use.
-     
-    
-   
-
-   
-    
-      TOAST
-    
-    
-     
-      TOAST - Previous releases had a compiled-in row length limit,
-typically 8k - 32k. This limit made storage of long text fields
-difficult.  With TOAST, long rows of any length can be stored with good
-performance.
-     
-    
-   
-
-   
-    
-      Outer Joins
-    
-    
-     
-We now support outer joins.  The UNION/NOT IN
-workaround for outer joins is no longer required.  We use the SQL92
-outer join syntax.
-     
-    
-   
-
-   
-    
-      Function Manager
-    
-    
-     
-The previous C function manager did not
-handle null values properly, nor did it support 64-bit CPU's (Alpha).  The new
-function manager does.  You can continue using your old custom
-functions, but you might want to rewrite them in the future to use the new
-function manager call interface.
-     
-    
-   
-
-   
-    
-      Complex Queries
-    
-    
-     
-A large number of complex queries that were
-unsupported in previous releases now work.  Many combinations of views,
-aggregates, UNION, LIMIT, cursors, subqueries, and inherited tables
-now work properly. Inherited tables are now accessed by default.
-Subqueries in FROM are now supported.
-     
-    
-   
-
-  
-
-  
-   Migration to Version 7.1
-
-   
-       A dump/restore using pg_dump is required for those wishing to migrate
-       data from any previous release.
-   
-  
-
-  
-   Changes
-
-   
-    
-Bug Fixes
----------
-Many multibyte/Unicode/locale fixes (Tatsuo and others)
-More reliable ALTER TABLE RENAME (Tom)
-Kerberos V fixes (David Wragg)
-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)
-Prevent query expressions from leaking memory (Tom)
-Allow UPDATE of arrays elements (Tom)
-Wake up lock waiters during cancel (Hiroshi)
-Fix rare cursor crash when using hash join (Tom)
-Fix for DROP TABLE/INDEX in rolled-back transaction (Hiroshi)
-Fix psql crash from \l+ if MULTIBYTE enabled (Peter E)
-Fix truncation of rule names during CREATE VIEW (Ross Reedstrom)
-Fix PL/perl (Alex Kapranoff)
-Disallow LOCK on views (Mark Hollomon)
-Disallow INSERT/UPDATE/DELETE on views (Mark Hollomon)
-Disallow DROP RULE, CREATE INDEX, TRUNCATE on views (Mark Hollomon)
-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)
-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)
-Modify pg_dump to better handle user-defined items in template1 (Philip)
-Allow LIMIT in VIEW (Tom)
-Require cursor FETCH to honor LIMIT (Tom)
-Allow PRIMARY/FOREIGN Key definitions on inherited columns (Stephan)
-Allow ORDER BY, LIMIT in subqueries (Tom)
-Allow UNION in CREATE RULE (Tom)
-Make ALTER/DROP TABLE rollback-able (Vadim, Tom)
-Store initdb collation in pg_control so collation cannot be changed (Tom)
-Fix INSERT...SELECT with rules (Tom)
-Fix FOR UPDATE inside views and subselects (Tom)
-Fix OVERLAPS operators conform to SQL92 spec regarding NULLs (Tom)
-Fix lpad() and rpad() to handle length less than input string (Tom)
-Fix use of NOTIFY in some rules (Tom)
-Overhaul btree code (Tom)
-Fix NOT NULL use in Pl/pgSQL variables (Tom)
-Overhaul GIST code (Oleg)
-Fix CLUSTER to preserve constraints and column default (Tom)
-Improved deadlock detection handling (Tom)
-Allow multiple SERIAL columns in a table (Tom)
-Prevent occasional index corruption (Vadim)
-
-Enhancements
-------------
-Add OUTER JOINs (Tom)
-Function manager overhaul (Tom)
-Allow ALTER TABLE RENAME on indexes (Tom)
-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)
-Grand Unified Configuration scheme/GUC.  Many options can now be set in
-   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)
-ODBC cleanups/improvements (Nick Gorham, Stephan Szabo, Zoltan Kovacs,
-   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)
-Overhaul pg_dump (Philip Warner)
-Allow pg_hba.conf secondary password file to specify only username (Peter E)
-Allow TEMPORARY or TEMP key word when creating temporary tables (Bruce)
-New memory leak checker (Karel)
-New SET SESSION CHARACTERISTICS (Thomas)
-Allow nested block comments (Thomas)
-Add WITHOUT TIME ZONE type qualifier (Thomas)
-New ALTER TABLE ADD CONSTRAINT (Stephan)
-Use NUMERIC accumulators for INTEGER aggregates (Tom)
-Overhaul aggregate code (Tom)
-New VARIANCE and STDDEV() aggregates
-Improve dependency ordering of pg_dump (Philip)
-New pg_restore command (Philip)
-New pg_dump tar output option (Philip)
-New pg_dump of large objects  (Philip)
-New ESCAPE option to LIKE (Thomas)
-New case-insensitive LIKE - ILIKE (Thomas)
-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)
-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)
-Allow subselects in FROM, i.e. FROM (SELECT ...) [AS] alias (Tom)
-Update PyGreSQL to version 3.1 (D'Arcy)
-Store tables as files named by OID (Vadim)
-New SQL function setval(seq,val,bool) for use in pg_dump (Philip)
-Require DROP VIEW to remove views, no DROP TABLE (Mark)
-Allow DROP VIEW view1, view2 (Mark)
-Allow multiple objects in DROP INDEX, DROP RULE, and DROP TYPE (Tom)
-Allow automatic conversion to/from Unicode (Tatsuo, Eiji)
-New /contrib/pgcrypto hashing functions (Marko Kreen)
-New pg_dumpall --globals-only option (Peter E)
-New CHECKPOINT command for WAL which creates new WAL log file (Vadim)
-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)
-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)
-New file format for COPY BINARY (Tom)
-New /contrib/oid2name to map numeric files to table names (B Palmer)
-New "idle in transaction" ps status message (Marc)
-Update to pgaccess 0.98.7 (Constantin Teodorescu)
-pg_ctl now defaults to -w (wait) on shutdown, new -l (log) option
-Add rudimentary dependency checking to pg_dump (Philip)
-
-Types
------
-Fix INET/CIDR type ordering and add new functions (Tom)
-Make OID behave as an unsigned type (Tom)
-Allow BIGINT as synonym for INT8 (Peter E)
-New int2 and int8 comparison operators (Tom)
-New BIT and BIT VARYING types (Adriaan Joubert, Tom, Peter E)
-CHAR() no longer faster than VARCHAR() because of TOAST (Tom)
-New GIST seg/cube examples (Gene Selkov)
-Improved round(numeric) handling (Tom)
-Fix CIDR output formatting (Tom)
-New CIDR abbrev() function (Tom)
-
-Performance
------------
-Write-Ahead Log (WAL) to provide crash recovery with less performance
-   overhead (Vadim)
-ANALYZE stage of VACUUM no longer exclusively locks table (Bruce)
-Reduced file seeks (Denis Perchine)
-Improve BTREE code for duplicate keys (Tom)
-Store all large objects in a single table (Denis Perchine, Tom)
-Improve memory allocation performance (Karel, Tom)
-
-Source Code
------------
-New function manager call conventions (Tom)
-SGI portability fixes (David Kaelbling)
-New configure --enable-syslog option (Peter E)
-New BSDI README (Bruce)
-configure script moved to top level, not /src (Peter E)
-Makefile/configuration/compilation overhaul (Peter E)
-New configure --with-python option (Peter E)
-Solaris cleanups (Peter E)
-Overhaul /contrib Makefiles (Karel)
-New OpenSSL configuration option (Magnus, Peter E)
-AIX fixes (Andreas)
-QNX fixes (Maurizio)
-New heap_open(), heap_openr() API (Tom)
-Remove colon and semi-colon operators (Thomas)
-New pg_class.relkind value for views (Mark Hollomon)
-Rename ichar() to chr() (Karel)
-New documentation for btrim(), ascii(), chr(), repeat() (Karel)
-Fixes for NT/Cygwin (Pete Forman)
-AIX port fixes (Andreas)
-New BeOS port (David Reid, Cyril Velter)
-Add proofreader's changes to docs (Addison-Wesley, Bruce)
-New Alpha spinlock code (Adriaan Joubert, Compaq)
-UnixWare port overhaul (Peter E)
-New Darwin/MacOS X port (Peter Bierman, Bruce Hartzler)
-New FreeBSD Alpha port (Alfred)
-Overhaul shared memory segments (Tom)
-Add IBM S/390 support (Neale Ferguson)
-Moved macmanuf to /contrib (Larry Rosenman)
-Syslog improvements (Larry Rosenman)
-New template0 database that contains no user additions (Tom)
-New /contrib/cube and /contrib/seg GIST sample code (Gene Selkov)
-Allow NetBSD's libedit instead of readline (Peter)
-Improved assembly language source code format (Bruce)
-New contrib/pg_logger
-New --template option to createdb
-New contrib/pg_control utility (Oliver)
-New FreeBSD tools ipc_check, start-scripts/freebsd
-    
-   
-  
-
-
-  Release 7.0.3
-
-  
-  Release date
-  2000-11-11
-  
-
-  
-   This has a variety of fixes from 7.0.2.
-  
-
-
-  
-   Migration to Version 7.0.3
-
-   
-    A dump/restore is not required for those running
-    7.0.*.
-   
-  
-
-  
-   Changes
-
-   
-    
-Jdbc fixes (Peter)
-Large object fix (Tom)
-Fix lean in COPY WITH OIDS leak (Tom)
-Fix backwards-index-scan (Tom)
-Fix SELECT ... FOR UPDATE so it checks for duplicate keys (Hiroshi)
-Add --enable-syslog to configure (Marc)
-Fix abort transaction at backend exit in rare cases (Tom)
-Fix for psql \l+ when multibyte enabled (Tatsuo)
-Allow PL/pgSQL to accept non ascii identifiers (Tatsuo)
-Make vacuum always flush buffers (Tom)
-Fix to allow cancel while waiting for a lock (Hiroshi)
-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)
-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)
-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)
-Fix to make pg_dump dump 'iscachable' flag for functions (Tom)
-Fix for subselect in targetlist of Append node (Tom)
-Fix for mergejoin plans (Tom)
-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)
-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)
-Fix for crash of backend, on abort (Tom)
-    
-   
-  
-
-
-  Release 7.0.2
-
-  
-  Release date
-  2000-06-05
-  
-
-  
-   This is a repackaging of 7.0.1 with added documentation.
-  
-
-
-  
-   Migration to Version 7.0.2
-
-   
-    A dump/restore is not required for those running
-    7.*.
-   
-  
-
-  
-   Changes
-
-   
-    
-Added documentation to tarball.
-    
-   
-  
-
-
-  Release 7.0.1
-
-  
-  Release date
-  2000-06-01
-  
-
-  
-   This is a cleanup release for 7.0.
-  
-
-  
-   Migration to Version 7.0.1
-
-   
-    A dump/restore is not required for those running
-    7.0.
-   
-  
-
-  
-   Changes
-
-   
-    
-Fix many CLUSTER failures (Tom)
-Allow ALTER TABLE RENAME works on indexes (Tom)
-Fix plpgsql to handle datetime->timestamp and timespan->interval (Bruce)
-New configure --with-setproctitle switch to use setproctitle() (Marc, Bruce)
-Fix the off by one errors in ResultSet from 6.5.3, and more.
-jdbc ResultSet fixes (Joseph Shraibman)
-optimizer tunings (Tom)
-Fix create user for pgaccess
-Fix for UNLISTEN failure
-IRIX fixes (David Kaelbling)
-QNX fixes (Andreas Kardos)
-Reduce COPY IN lock level (Tom)
-Change libpqeasy to use PQconnectdb() style parameters (Bruce)
-Fix pg_dump to handle OID indexes (Tom)
-Fix small memory leak (Tom)
-Solaris fix for createdb/dropdb (Tatsuo)
-Fix for non-blocking connections (Alfred Perlstein)
-Fix improper recovery after RENAME TABLE failures (Tom)
-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)
-ecpg changes (Michael)
-    
-   
-  
-
-  Release 7.0
-
-  
-  Release date
-  2000-05-08
-  
-
-  
-   This release contains improvements in many areas, demonstrating
-   the continued growth of PostgreSQL.
-   There are more improvements and fixes in 7.0 than in any previous
-   release. The developers have confidence that this is the best
-   release yet; we do our best to put out only solid releases, and
-   this one is no exception.
-  
-
-  
-   Major changes in this release:
-  
-
-  
-   
-    
-     Foreign Keys
-    
-    
-     
-      Foreign keys are now implemented, with the exception of PARTIAL MATCH
-      foreign keys. Many users have been asking for this feature, and we are
-      pleased to offer it.
-     
-    
-   
-
-   
-    
-     Optimizer Overhaul
-    
-    
-     
-      Continuing on work started a year ago, the optimizer has been
-      improved, allowing better query plan selection and faster performance
-      with less memory usage.
-     
-    
-   
-
-   
-    
-     Updated psql
-    
-    
-     
-      psql, our interactive terminal monitor, has been
-      updated with a variety of new features. See the psql manual page for details.
-     
-    
-   
-
-   
-    
-     Join Syntax
-    
-    
-     
-      SQL92 join syntax is now supported, though only as
-      INNER JOIN for this release. JOIN,
-      NATURAL JOIN, JOIN/USING,
-      and JOIN/ON are available, as are
-      column correlation names.
-     
-    
-
-   
-  
-
-  
-   Migration to Version 7.0
-
-   
-    A dump/restore using pg_dump
-    is required for those wishing to migrate data from any
-    previous release of PostgreSQL.
-    For those upgrading from 6.5.*, you can instead use
-    pg_upgrade to upgrade to this
-    release; however, a full dump/reload installation is always the
-    most robust method for upgrades.
-   
-
-   
-    Interface and compatibility issues to consider for the new
-    release include:
-   
-
-   
-    
-     
-      The date/time types datetime and
-      timespan have been superseded by the
-      SQL92-defined types timestamp and
-      interval. Although there has been some effort to
-      ease the transition by allowing
-      PostgreSQL to recognize
-      the deprecated type names and translate them to the new type
-      names, this mechanism cannot be completely transparent to
-      your existing application.
-     
-    
-
-    
-     
-      The optimizer has been substantially improved in the area of
-      query cost estimation. In some cases, this will result in
-      decreased query times as the optimizer makes a better choice
-      for the preferred plan. However, in a small number of cases,
-      usually involving pathological distributions of data, your
-      query times might go up. If you are dealing with large amounts
-      of data, you might want to check your queries to verify
-      performance.
-     
-    
-
-    
-     
-      The JDBC and ODBC
-      interfaces have been upgraded and extended.
-     
-    
-
-    
-     
-      The string function CHAR_LENGTH is now a
-      native function. Previous versions translated this into a call
-      to LENGTH, which could result in
-      ambiguity with other types implementing
-      LENGTH such as the geometric types.
-     
-    
-   
-  
-
-  
-   Changes
-
-   
-    
-Bug Fixes
----------
-Prevent function calls exceeding maximum number of arguments (Tom)
-Improve CASE construct (Tom)
-Fix SELECT coalesce(f1,0) FROM int4_tbl GROUP BY f1 (Tom)
-Fix SELECT sentence.words[0] FROM sentence GROUP BY sentence.words[0] (Tom)
-Fix GROUP BY scan bug (Tom)
-Improvements in SQL grammar processing (Tom)
-Fix for views involved in INSERT ... SELECT ... (Tom)
-Fix for SELECT a/2, a/2 FROM test_missing_target GROUP BY a/2 (Tom)
-Fix for subselects in INSERT ... SELECT (Tom)
-Prevent INSERT ... SELECT ... ORDER BY (Tom)
-Fixes for relations greater than 2GB, including vacuum
-Improve propagating system table changes to other backends (Tom)
-Improve propagating user table changes to other backends (Tom)
-Fix handling of temp tables in complex situations (Bruce, Tom)
-Allow table locking at table open, improving concurrent reliability (Tom)
-Properly quote sequence names in pg_dump (Ross J. Reedstrom)
-Prevent DROP DATABASE while others accessing
-Prevent any rows from being returned by GROUP BY if no rows processed (Tom)
-Fix SELECT COUNT(1) FROM table WHERE ...' if no rows matching WHERE (Tom)
-Fix pg_upgrade so it works for MVCC (Tom)
-Fix for SELECT ... WHERE x IN (SELECT ... HAVING SUM(x) > 1) (Tom)
-Fix for "f1 datetime DEFAULT 'now'"  (Tom)
-Fix problems with CURRENT_DATE used in DEFAULT (Tom)
-Allow comment-only lines, and ;;; lines too. (Tom)
-Improve recovery after failed disk writes, disk full (Hiroshi)
-Fix cases where table is mentioned in FROM but not joined (Tom)
-Allow HAVING clause without aggregate functions (Tom)
-Fix for "--" comment and no trailing newline, as seen in perl interface
-Improve pg_dump failure error reports (Bruce)
-Allow sorts and hashes to exceed 2GB file sizes (Tom)
-Fix for pg_dump dumping of inherited rules (Tom)
-Fix for NULL handling comparisons (Tom)
-Fix inconsistent state caused by failed CREATE/DROP commands (Hiroshi)
-Fix for dbname with dash
-Prevent DROP INDEX from interfering with other backends (Tom)
-Fix file descriptor leak in verify_password()
-Fix for "Unable to identify an operator =$" problem
-Fix ODBC so no segfault if CommLog and Debug enabled (Dirk Niggemann)
-Fix for recursive exit call (Massimo)
-Fix for extra-long timezones (Jeroen van Vianen)
-Make pg_dump preserve primary key information (Peter E)
-Prevent databases with single quotes (Peter E)
-Prevent DROP DATABASE inside  transaction (Peter E)
-ecpg memory leak fixes (Stephen Birch)
-Fix for SELECT null::text, SELECT int4fac(null) and SELECT 2 + (null) (Tom)
-Y2K timestamp fix (Massimo)
-Fix for VACUUM 'HEAP_MOVED_IN was not expected' errors (Tom)
-Fix for views with tables/columns containing spaces  (Tom)
-Prevent privileges on indexes (Peter E)
-Fix for spinlock stuck problem when error is generated (Hiroshi)
-Fix ipcclean on Linux
-Fix handling of NULL constraint conditions (Tom)
-Fix memory leak in odbc driver (Nick Gorham)
-Fix for privilege check on UNION tables (Tom)
-Fix to allow SELECT 'a' LIKE 'a' (Tom)
-Fix for SELECT 1 + NULL (Tom)
-Fixes to CHAR
-Fix log() on numeric type (Tom)
-Deprecate ':' and ';' operators
-Allow vacuum of temporary tables
-Disallow inherited columns with the same name as new columns
-Recover or force failure when disk space is exhausted (Hiroshi)
-Fix INSERT INTO ... SELECT with AS columns matching result columns
-Fix INSERT ... SELECT ... GROUP BY groups by target columns not source columns (Tom)
-Fix CREATE TABLE test (a char(5) DEFAULT text '', b int4) with INSERT (Tom)
-Fix UNION with LIMIT
-Fix CREATE TABLE x AS SELECT 1 UNION SELECT 2
-Fix CREATE TABLE test(col char(2) DEFAULT user)
-Fix mismatched types in CREATE TABLE ... DEFAULT
-Fix SELECT * FROM pg_class where oid in (0,-1)
-Fix SELECT COUNT('asdf') FROM pg_class WHERE oid=12
-Prevent user who can create databases can modifying pg_database table (Peter E)
-Fix btree to give a useful elog when key > 1/2 (page - overhead) (Tom)
-Fix INSERT of 0.0 into DECIMAL(4,4) field (Tom)
-
-Enhancements
-------------
-New CLI interface include file sqlcli.h, based on SQL3/SQL98
-Remove all limits on query length, row length limit still exists (Tom)
-Update jdbc protocol to 2.0 (Jens Glaser [email protected])
-Add TRUNCATE command to quickly truncate relation (Mike Mascari)
-Fix to give super user and createdb user proper update catalog rights (Peter E)
-Allow ecpg bool variables to have NULL values (Christof)
-Issue ecpg error if NULL value for variable with no NULL indicator (Christof)
-Allow ^C to cancel COPY command (Massimo)
-Add SET FSYNC and SHOW PG_OPTIONS commands(Massimo)
-Function name overloading for dynamically-loaded C functions (Frankpitt)
-Add CmdTuples() to libpq++(Vince)
-New CREATE CONSTRAINT TRIGGER and SET CONSTRAINTS commands(Jan)
-Allow CREATE FUNCTION/WITH clause to be used for all language types
-configure --enable-debug adds -g (Peter E)
-configure --disable-debug removes -g (Peter E)
-Allow more complex default expressions (Tom)
-First real FOREIGN KEY constraint trigger functionality (Jan)
-Add FOREIGN KEY ... MATCH FULL ... ON DELETE CASCADE (Jan)
-Add FOREIGN KEY ... MATCH <unspecified> referential actions (Don Baccus)
-Allow WHERE restriction on ctid (physical heap location) (Hiroshi)
-Move pginterface from contrib to interface directory, rename to pgeasy (Bruce)
-Change pgeasy connectdb() parameter ordering (Bruce)
-Require SELECT DISTINCT target list to have all ORDER BY columns (Tom)
-Add Oracle's COMMENT ON command (Mike Mascari [email protected])
-libpq's PQsetNoticeProcessor function now returns previous hook(Peter E)
-Prevent PQsetNoticeProcessor from being set to NULL (Peter E)
-Make USING in COPY optional (Bruce)
-Allow subselects in the target list (Tom)
-Allow subselects on the left side of comparison operators (Tom)
-New parallel regression test (Jan)
-Change backend-side COPY to write files with permissions 644 not 666 (Tom)
-Force permissions on PGDATA directory to be secure, even if it exists (Tom)
-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)
-New libpq PQsetenv() function (Ewan Mellor)
-create/alter user extension (Peter E)
-New postmaster.pid and postmaster.opts under $PGDATA (Tatsuo)
-New scripts for create/drop user/db (Peter E)
-Major psql overhaul (Peter E)
-Add const to libpq interface (Peter E)
-New libpq function PQoidValue (Peter E)
-Show specific non-aggregate causing problem with GROUP BY (Tom)
-Make changes to pg_shadow recreate pg_pwd file (Peter E)
-Add aggregate(DISTINCT ...) (Tom)
-Allow flag to control COPY input/output of NULLs (Peter E)
-Make postgres user have a password by default (Peter E)
-Add CREATE/ALTER/DROP GROUP (Peter E)
-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
-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
-Increase maximum number of index keys to 16 (Bruce)
-Increase maximum number of function arguments to 16 (Bruce)
-Allow configuration of maximum number of index keys and arguments (Bruce)
-Allow unprivileged users to change their passwords (Peter E)
-Password authentication enabled; required for new users (Peter E)
-Disallow dropping a user who owns a database (Peter E)
-Change initdb option --with-mb to --enable-multibyte
-Add option for initdb to prompts for superuser password (Peter E)
-Allow complex type casts like col::numeric(9,2) and col::int2::float8 (Tom)
-Updated user interfaces on initdb, initlocation, pg_dump, ipcclean (Peter E)
-New pg_char_to_encoding() and pg_encoding_to_char() functions (Tatsuo)
-libpq non-blocking mode (Alfred Perlstein)
-Improve conversion of types in casts that don't specify a length
-New plperl internal programming language (Mark Hollomon)
-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 <[email protected]>)
-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
-Improve EXPLAIN results for Append, Group, Agg, Unique (Tom)
-Add ALTER TABLE ... ADD FOREIGN KEY (Stephan Szabo)
-Allow SELECT .. FOR UPDATE in PL/pgSQL (Hiroshi)
-Enable backward sequential scan even after reaching EOF (Hiroshi)
-Add btree indexing of boolean values, >= and <= (Don Baccus)
-Print current line number when COPY FROM fails (Massimo)
-Recognize POSIX time zone e.g. "PST+8" and "GMT-8" (Thomas)
-Add DEC as synonym for DECIMAL (Thomas)
-Add SESSION_USER as SQL92 key word, same as CURRENT_USER (Thomas)
-Implement SQL92 column aliases (aka correlation names) (Thomas)
-Implement SQL92 join syntax (Thomas)
-Make INTERVAL reserved word allowed as a column identifier (Thomas)
-Implement REINDEX command (Hiroshi)
-Accept ALL in aggregate function SUM(ALL col) (Tom)
-Prevent GROUP BY from using column aliases (Tom)
-New psql \encoding option (Tatsuo)
-Allow PQrequestCancel() to terminate when in waiting-for-lock state (Hiroshi)
-Allow negation of a negative number in all cases
-Add ecpg descriptors (Christof, Michael)
-Allow CREATE VIEW v AS SELECT f1::char(8) FROM tbl
-Allow casts with length, like foo::char(8)
-New libpq functions PQsetClientEncoding(), PQclientEncoding() (Tatsuo)
-Add support for SJIS user defined characters (Tatsuo)
-Larger views/rules supported
-Make libpq's PQconndefaults() thread-safe (Tom)
-Disable // as comment to be ANSI conforming, should use -- (Tom)
-Allow column aliases on views CREATE VIEW name (collist)
-Fixes for views with subqueries (Tom)
-Allow UPDATE table SET fld = (SELECT ...) (Tom)
-SET command options no longer require quotes
-Update pgaccess to 0.98.6
-New SET SEED command
-New pg_options.sample file
-New SET FSYNC command (Massimo)
-Allow pg_descriptions when creating tables
-Allow pg_descriptions when creating types, columns, and functions
-Allow psql \copy to allow delimiters (Peter E)
-Allow psql to print nulls as distinct from "" [null] (Peter E)
-
-Types
------
-Many array fixes (Tom)
-Allow bare column names to be subscripted as arrays (Tom)
-Improve type casting of int and float constants (Tom)
-Cleanups for int8 inputs, range checking, and type conversion (Tom)
-Fix for SELECT timespan('21:11:26'::time) (Tom)
-netmask('x.x.x.x/0') is 255.255.255.255 instead of 0.0.0.0 (Oleg Sharoiko)
-Add btree index on NUMERIC (Jan)
-Perl fix for large objects containing NUL characters (Douglas Thomson)
-ODBC fix for large objects (free)
-Fix indexing of cidr data type
-Fix for Ethernet MAC addresses (macaddr type) comparisons
-Fix for date/time types when overflows happened in computations (Tom)
-Allow array on int8 (Peter E)
-Fix for rounding/overflow of NUMERIC type, like NUMERIC(4,4) (Tom)
-Allow NUMERIC arrays
-Fix bugs in NUMERIC ceil() and floor() functions (Tom)
-Make char_length()/octet_length including trailing blanks (Tom)
-Made abstime/reltime use int4 instead of time_t (Peter E)
-New lztext data type for compressed text fields
-Revise code to handle coercion of int and float constants (Tom)
-Start at new code to implement a BIT and BIT VARYING type (Adriaan Joubert)
-NUMERIC now accepts scientific notation (Tom)
-NUMERIC to int4 rounds (Tom)
-Convert float4/8 to NUMERIC properly (Tom)
-Allow type conversion with NUMERIC (Thomas)
-Make ISO date style (2000-02-16 09:33) the default (Thomas)
-Add NATIONAL CHAR [ VARYING ] (Thomas)
-Allow NUMERIC round and trunc to accept negative scales (Tom)
-New TIME WITH TIME ZONE type (Thomas)
-Add MAX()/MIN() on time type (Thomas)
-Add abs(), mod(), fac() for int8 (Thomas)
-Rename functions to round(), sqrt(), cbrt(), pow() for float8 (Thomas)
-Add transcendental math functions (e.g. sin(), acos()) for float8 (Thomas)
-Add exp() and ln() for NUMERIC type
-Rename NUMERIC power() to pow() (Thomas)
-Improved TRANSLATE() function (Edwin Ramirez, Tom)
-Allow X=-Y operators  (Tom)
-Allow SELECT float8(COUNT(*))/(SELECT COUNT(*) FROM t) FROM t GROUP BY f1; (Tom)
-Allow LOCALE to use indexes in regular expression searches (Tom)
-Allow creation of functional indexes to use default types
-
-Performance
------------
-Prevent exponential space consumption with many AND's and OR's (Tom)
-Collect attribute selectivity values for system columns (Tom)
-Reduce memory usage of aggregates (Tom)
-Fix for LIKE optimization to use indexes with multibyte encodings (Tom)
-Fix r-tree index optimizer selectivity (Thomas)
-Improve optimizer selectivity computations and functions (Tom)
-Optimize btree searching for cases where many equal keys exist (Tom)
-Enable fast LIKE index processing only if index present (Tom)
-Re-use free space on index pages with duplicates (Tom)
-Improve hash join processing (Tom)
-Prevent descending sort if result is already sorted(Hiroshi)
-Allow commuting of index scan query qualifications (Tom)
-Prefer index scans in cases where ORDER BY/GROUP BY is required (Tom)
-Allocate large memory requests in fix-sized chunks for performance (Tom)
-Fix vacuum's performance by reducing memory allocation requests (Tom)
-Implement constant-expression simplification (Bernard Frankpitt, Tom)
-Use secondary columns to be used to determine start of index scan (Hiroshi)
-Prevent quadruple use of disk space when doing internal sorting (Tom)
-Faster sorting by calling fewer functions (Tom)
-Create system indexes to match all system caches (Bruce, Hiroshi)
-Make system caches use system indexes (Bruce)
-Make all system indexes unique (Bruce)
-Improve pg_statistics management for VACUUM speed improvement (Tom)
-Flush backend cache less frequently (Tom, Hiroshi)
-COPY now reuses previous memory allocation, improving performance (Tom)
-Improve optimization cost estimation (Tom)
-Improve optimizer estimate of range queries x > lowbound AND x < highbound (Tom)
-Use DNF instead of CNF where appropriate (Tom, Taral)
-Further cleanup for OR-of-AND WHERE-clauses (Tom)
-Make use of index in OR clauses (x = 1 AND y = 2) OR (x = 2 AND y = 4) (Tom)
-Smarter optimizer computations for random index page access (Tom)
-New SET variable to control optimizer costs (Tom)
-Optimizer queries based on LIMIT, OFFSET, and EXISTS qualifications (Tom)
-Reduce optimizer internal housekeeping of join paths for speedup (Tom)
-Major subquery speedup (Tom)
-Fewer fsync writes when fsync is not disabled (Tom)
-Improved LIKE optimizer estimates (Tom)
-Prevent fsync in SELECT-only queries (Vadim)
-Make index creation use psort code, because it is now faster (Tom)
-Allow creation of sort temp tables > 1 Gig
-
-Source Tree Changes
--------------------
-Fix for linux PPC compile
-New generic expression-tree-walker subroutine (Tom)
-Change form() to varargform() to prevent portability problems
-Improved range checking for large integers on Alphas
-Clean up #include in /include directory (Bruce)
-Add scripts for checking includes (Bruce)
-Remove un-needed #include's from *.c files (Bruce)
-Change #include's to use <> and "" as appropriate (Bruce)
-Enable Windows compilation of libpq
-Alpha spinlock fix from Uncle George [email protected]
-Overhaul of optimizer data structures (Tom)
-Fix to cygipc library (Yutaka Tanida)
-Allow pgsql to work on newer Cygwin snapshots (Dan)
-New catalog version number (Tom)
-Add Linux ARM
-Rename heap_replace to heap_update
-Update for QNX (Dr. Andreas Kardos)
-New platform-specific regression handling (Tom)
-Rename oid8 -> oidvector and int28 -> int2vector (Bruce)
-Included all yacc and lex files into the distribution (Peter E.)
-Remove lextest, no longer needed (Peter E)
-Fix for libpq and psql on Windows (Magnus)
-Internally change datetime and timespan into timestamp and interval (Thomas)
-Fix for plpgsql on BSD/OS
-Add SQL_ASCII test case to the regression test (Tatsuo)
-configure --with-mb now deprecated (Tatsuo)
-NT fixes
-NetBSD fixes (Johnny C. Lam [email protected])
-Fixes for Alpha compiles
-New multibyte encodings
-    
-   
-  
-
-  Release 6.5.3
-
-  
-  Release date
-  1999-10-13
-  
-
-  
-   This is basically a cleanup release for 6.5.2.  We have added a new
-   PgAccess that was missing in 6.5.2, and installed an NT-specific fix.
-  
-
-
-  
-   Migration to Version 6.5.3
-
-   
-    A dump/restore is not required for those running
-    6.5.*.
-   
-  
-  
-   Changes
-
-   
-    
-Updated version of pgaccess 0.98
-NT-specific patch
-Fix dumping rules on inherited tables
-    
-   
-  
-
-
-  Release 6.5.2
-
-  
-  Release date
-  1999-09-15
-  
-
-  
-   This is basically a cleanup release for 6.5.1.  We have fixed a variety of
-   problems reported by 6.5.1 users.
-  
-
-
-  
-   Migration to Version 6.5.2
-
-   
-    A dump/restore is not required for those running
-    6.5.*.
-   
-  
-
-  
-   Changes
-
-   
-    
-subselect+CASE fixes(Tom)
-Add SHLIB_LINK setting for solaris_i386 and solaris_sparc ports(Daren Sefcik)
-Fixes for CASE in WHERE join clauses(Tom)
-Fix BTScan abort(Tom)
-Repair the check for redundant UNIQUE and PRIMARY KEY indexes(Thomas)
-Improve it so that it checks for multicolumn constraints(Thomas)
-Fix for Windows making problem with MB enabled(Hiroki Kataoka)
-Allow BSD yacc and bison to compile pl code(Bruce)
-Fix SET NAMES working
-int8 fixes(Thomas)
-Fix vacuum's memory consumption(Hiroshi,Tatsuo)
-Reduce the total memory consumption of vacuum(Tom)
-Fix for timestamp(datetime)
-Rule deparsing bugfixes(Tom)
-Fix quoting problems in mkMakefile.tcldefs.sh.in and mkMakefile.tkdefs.sh.in(Tom)
-This is to re-use space on index pages freed by vacuum(Vadim)
-document -x for pg_dump(Bruce)
-Fix for unary operators in rule deparser(Tom)
-Comment out FileUnlink of excess segments during mdtruncate()(Tom)
-IRIX linking fix from Yu Cao >[email protected]<
-Repair logic error in LIKE: should not return LIKE_ABORT
-  when reach end of pattern before end of text(Tom)
-Repair incorrect cleanup of heap memory allocation during transaction abort(Tom)
-Updated version of pgaccess 0.98
-    
-   
-  
-
-  Release 6.5.1
-
-  
-  Release date
-  1999-07-15
-  
-
-  
-   This is basically a cleanup release for 6.5.  We have fixed a variety of
-   problems reported by 6.5 users.
-  
-
-  
-   Migration to Version 6.5.1
-
-   
-    A dump/restore is not required for those running
-    6.5.
-   
-  
-
-  
-   Changes
-
-   
-    
-Add NT README file
-Portability fixes for linux_ppc, IRIX, linux_alpha, OpenBSD, alpha
-Remove QUERY_LIMIT, use SELECT...LIMIT
-Fix for EXPLAIN on inheritance(Tom)
-Patch to allow vacuum on multisegment tables(Hiroshi)
-R-Tree optimizer selectivity fix(Tom)
-ACL file descriptor leak fix(Atsushi Ogawa)
-New expression subtree code(Tom)
-Avoid disk writes for read-only transactions(Vadim)
-Fix for removal of temp tables if last transaction was aborted(Bruce)
-Fix to prevent too large row from being created(Bruce)
-plpgsql fixes
-Allow port numbers 32k - 64k(Bruce)
-Add ^ precedence(Bruce)
-Rename sort files called pg_temp to pg_sorttemp(Bruce)
-Fix for microseconds in time values(Tom)
-Tutorial source cleanup
-New linux_m68k port
-Fix for sorting of NULL's in some cases(Tom)
-Shared library dependencies fixed (Tom)
-Fixed glitches affecting GROUP BY in subselects(Tom)
-Fix some compiler warnings (Tomoaki Nishiyama)
-Add Win1250 (Czech) support (Pavel Behal)
-    
-   
-  
-
-  Release 6.5
-
-  
-  Release date
-  1999-06-09
-  
-
-  
-   This release marks a major step in the development team's mastery of the source
-   code we inherited from Berkeley.  You will see we are now easily adding
-   major features, thanks to the increasing size and experience of our
-   world-wide development team.
-  
-
-  
-   Here is a brief summary of the more notable changes:
-
-   
-    
-     
-      Multiversion concurrency control(MVCC)
-     
-     
-      
-       This removes our old table-level locking, and replaces it with
-       a locking system that is superior to most commercial database
-       systems.  In a traditional system, each row that is modified
-       is locked until committed, preventing reads by other users.
-       MVCC uses the natural multiversion nature of
-       PostgreSQL to allow readers to
-       continue reading consistent data during writer activity.
-       Writers continue to use the compact pg_log transaction system.
-       This is all performed without having to allocate a lock for
-       every row like traditional database systems.  So, basically,
-       we no longer are restricted by simple table-level locking; we
-       have something better than row-level locking.
-      
-     
-    
-
-    
-     
-      Hot backups from pg_dump
-     
-     
-      
-       pg_dump takes advantage of the new
-       MVCC features to give a consistent database dump/backup while
-       the database stays online and available for queries.
-      
-     
-    
-
-    
-     
-      Numeric data type
-     
-     
-      
-       We now have a true numeric data type, with
-       user-specified precision.
-      
-     
-    
-
-    
-     
-      Temporary tables
-     
-     
-      
-       Temporary tables are guaranteed to have unique names
-       within a database session, and are destroyed on session exit.
-      
-     
-    
-
-    
-     
-      New SQL features
-     
-     
-      
-       We now have CASE, INTERSECT, and EXCEPT statement
-       support.  We have new LIMIT/OFFSET, SET TRANSACTION ISOLATION LEVEL,
-       SELECT ... FOR UPDATE, and an improved LOCK TABLE command.
-      
-     
-    
-
-    
-     
-      Speedups
-     
-     
-      
-       We continue to speed up PostgreSQL,
-       thanks to the variety of talents within our team.  We have
-       sped up memory allocation, optimization, table joins, and row
-       transfer routines.
-      
-     
-    
-
-    
-     
-      Ports
-     
-     
-      
-       We continue to expand our port list, this time including
-       Windows NT/ix86 and NetBSD/arm32.
-      
-     
-    
-
-    
-     
-      Interfaces
-     
-     
-      
-       Most interfaces have new versions, and existing functionality
-       has been improved.
-      
-     
-    
-
-    
-     
-      Documentation
-     
-     
-      
-       New and updated material is present throughout the
-       documentation. New FAQs have been
-       contributed for SGI and AIX platforms.
-       The Tutorial has introductory information
-       on SQL from Stefan Simkovics.
-       For the User's Guide, there are
-       reference pages covering the postmaster and more utility
-       programs, and a new appendix
-       contains details on date/time behavior.
-       The Administrator's Guide has a new
-       chapter on troubleshooting from Tom Lane.
-       And the Programmer's Guide has a
-       description of query processing, also from Stefan, and details
-       on obtaining the PostgreSQL source
-       tree via anonymous CVS and
-       CVSup.
-      
-     
-    
-   
-  
-
-  
-   Migration to Version 6.5
-
-   
-    A dump/restore using pg_dump
-    is required for those wishing to migrate data from any
-    previous release of PostgreSQL.
-    pg_upgrade can not
-    be used to upgrade to this release because the on-disk structure
-    of the tables has changed compared to previous releases.
-   
-
-   
-    The new Multiversion Concurrency Control (MVCC) features can
-    give somewhat different behaviors in multiuser
-    environments. Read and understand the following section
-     to ensure that your existing applications will give you the
-     behavior you need.
-   
-
-   
-    Multiversion Concurrency Control
-
-    
-     Because readers in 6.5 don't lock data, regardless of transaction
-     isolation level, data read by one transaction can be overwritten by
-     another. In other words, if a row is returned by
-     SELECT it doesn't mean that this row really exists
-     at the time it is returned (i.e. sometime after the statement or
-     transaction began) nor that the row is protected from being deleted or
-     updated by concurrent transactions before the current transaction does
-     a commit or rollback.
-    
-
-    
-     To ensure the actual existence of a row and protect it against
-     concurrent updates one must use SELECT FOR UPDATE or
-     an appropriate LOCK TABLE statement. This should be
-     taken into account when porting applications from previous releases of
-     PostgreSQL and other environments.
-    
-
-    
-     Keep the above in mind if you are using
-     contrib/refint.* triggers for
-     referential integrity. Additional techniques are required now. One way is
-     to use LOCK parent_table IN SHARE ROW EXCLUSIVE MODE
-     command if a transaction is going to update/delete a primary key and
-     use LOCK parent_table IN SHARE MODE command if a
-     transaction is going to update/insert a foreign key.
-
-     
-      
-       Note that if you run a transaction in SERIALIZABLE mode then you must
-       execute the LOCK commands above before execution of any
-       DML statement
-       (SELECT/INSERT/DELETE/UPDATE/FETCH/COPY_TO) in the
-       transaction.
-      
-     
-    
-
-    
-     These inconveniences will disappear in the future
-     when the ability to read dirty
-     (uncommitted) data (regardless of isolation level) and true referential
-     integrity will be implemented.
-    
-   
-   
-
-  
-   Changes
-
-   
-    
-Bug Fixes
----------
-Fix text<->float8 and text<->float4 conversion functions(Thomas)
-Fix for creating tables with mixed-case constraints(Billy)
-Change exp()/pow() behavior to generate error on underflow/overflow(Jan)
-Fix bug in pg_dump -z
-Memory overrun cleanups(Tatsuo)
-Fix for lo_import crash(Tatsuo)
-Adjust handling of data type names to suppress double quotes(Thomas)
-Use type coercion for matching columns and DEFAULT(Thomas)
-Fix deadlock so it only checks once after one second of sleep(Bruce)
-Fixes for aggregates and PL/pgsql(Hiroshi)
-Fix for subquery crash(Vadim)
-Fix for libpq function PQfnumber and case-insensitive names(Bahman Rafatjoo)
-Fix for large object write-in-middle, no extra block, memory consumption(Tatsuo)
-Fix for pg_dump -d or -D and  quote special characters in INSERT
-Repair serious problems with dynahash(Tom)
-Fix INET/CIDR portability problems
-Fix problem with selectivity error in ALTER TABLE ADD COLUMN(Bruce)
-Fix executor so mergejoin of different column types works(Tom)
-Fix for Alpha OR selectivity bug
-Fix OR index selectivity problem(Bruce)
-Fix so \d shows proper length for char()/varchar()(Ryan)
-Fix tutorial code(Clark)
-Improve destroyuser checking(Oliver)
-Fix for Kerberos(Rodney McDuff)
-Fix for dropping database while dirty buffers(Bruce)
-Fix so sequence nextval() can be case-sensitive(Bruce)
-Fix !!= operator
-Drop buffers before destroying database files(Bruce)
-Fix case where executor evaluates functions twice(Tatsuo)
-Allow sequence nextval actions to be case-sensitive(Bruce)
-Fix optimizer indexing not working for negative numbers(Bruce)
-Fix for memory leak in executor with fjIsNull
-Fix for aggregate memory leaks(Erik Riedel)
-Allow user name containing a dash to grant privileges
-Cleanup of NULL in inet types
-Clean up system table bugs(Tom)
-Fix problems of PAGER and \? command(Masaaki Sakaida)
-Reduce default multisegment file size limit to 1GB(Peter)
-Fix for dumping of CREATE OPERATOR(Tom)
-Fix for backward scanning of cursors(Hiroshi Inoue)
-Fix for COPY FROM STDIN when using \i(Tom)
-Fix for subselect is compared inside an expression(Jan)
-Fix handling of error reporting while returning rows(Tom)
-Fix problems with reference to array types(Tom,Jan)
-Prevent UPDATE SET oid(Jan)
-Fix pg_dump so -t option can handle case-sensitive tablenames
-Fixes for GROUP BY in special cases(Tom, Jan)
-Fix for memory leak in failed queries(Tom)
-DEFAULT now supports mixed-case identifiers(Tom)
-Fix for multisegment uses of DROP/RENAME table, indexes(Ole Gjerde)
-Disable use of pg_dump with both -o and -d options(Bruce)
-Allow pg_dump to properly dump group privileges(Bruce)
-Fix GROUP BY in INSERT INTO table SELECT * FROM table2(Jan)
-Fix for computations in views(Jan)
-Fix for aggregates on array indexes(Tom)
-Fix for DEFAULT handles single quotes in value requiring too many quotes
-Fix security problem with non-super users importing/exporting large objects(Tom)
-Rollback of transaction that creates table cleaned up properly(Tom)
-Fix to allow long table and column names to generate proper serial names(Tom)
-
-Enhancements
-------------
-Add "vacuumdb" utility
-Speed up libpq by allocating memory better(Tom)
-EXPLAIN all indexes used(Tom)
-Implement CASE, COALESCE, NULLIF  expression(Thomas)
-New pg_dump table output format(Constantin)
-Add string min()/max() functions(Thomas)
-Extend new type coercion techniques to aggregates(Thomas)
-New moddatetime contrib(Terry)
-Update to pgaccess 0.96(Constantin)
-Add routines for single-byte "char" type(Thomas)
-Improved substr() function(Thomas)
-Improved multibyte handling(Tatsuo)
-Multiversion concurrency control/MVCC(Vadim)
-New Serialized mode(Vadim)
-Fix for tables over 2gigs(Peter)
-New SET TRANSACTION ISOLATION LEVEL(Vadim)
-New LOCK TABLE IN ... MODE(Vadim)
-Update ODBC driver(Byron)
-New NUMERIC data type(Jan)
-New SELECT FOR UPDATE(Vadim)
-Handle "NaN" and "Infinity" for input values(Jan)
-Improved date/year handling(Thomas)
-Improved handling of backend connections(Magnus)
-New options ELOG_TIMESTAMPS and USE_SYSLOG options for log files(Massimo)
-New TCL_ARRAYS option(Massimo)
-New INTERSECT and EXCEPT(Stefan)
-New pg_index.indisprimary for primary key tracking(D'Arcy)
-New pg_dump option to allow dropping of tables before creation(Brook)
-Speedup of row output routines(Tom)
-New READ COMMITTED isolation level(Vadim)
-New TEMP tables/indexes(Bruce)
-Prevent sorting if result is already sorted(Jan)
-New memory allocation optimization(Jan)
-Allow psql to do \p\g(Bruce)
-Allow multiple rule actions(Jan)
-Added LIMIT/OFFSET functionality(Jan)
-Improve optimizer when joining a large number of tables(Bruce)
-New intro to SQL from S. Simkovics' Master's Thesis (Stefan, Thomas)
-New intro to backend processing from S. Simkovics' Master's Thesis (Stefan)
-Improved int8 support(Ryan Bradetich, Thomas, Tom)
-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)
-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)
-Allow psql \d on a view show query(Ryan)
-Speedup for LIKE(Bruce)
-Ecpg fixes/features, see src/interfaces/ecpg/ChangeLog file(Michael)
-JDBC fixes/features, see src/interfaces/jdbc/CHANGELOG(Peter)
-Make % operator have precedence like /(Bruce)
-Add new postgres -O option to allow system table structure changes(Bruce)
-Update contrib/pginterface/findoidjoins script(Tom)
-Major speedup in vacuum of deleted rows with indexes(Vadim)
-Allow non-SQL functions to run different versions based on arguments(Tom)
-Add -E option that shows actual queries sent by \dt and friends(Masaaki Sakaida)
-Add version number in start-up banners for psql(Masaaki Sakaida)
-New contrib/vacuumlo removes large objects not referenced(Peter)
-New initialization for table sizes so non-vacuumed tables perform better(Tom)
-Improve error messages when a connection is rejected(Tom)
-Support for arrays of char() and varchar() fields(Massimo)
-Overhaul of hash code to increase reliability and performance(Tom)
-Update to PyGreSQL 2.4(D'Arcy)
-Changed debug options so -d4 and -d5 produce different node displays(Jan)
-New pg_options: pretty_plan, pretty_parse, pretty_rewritten(Jan)
-Better optimization statistics for system table access(Tom)
-Better handling of non-default block sizes(Massimo)
-Improve GEQO optimizer memory consumption(Tom)
-UNION now supports ORDER BY of columns not in target list(Jan)
-Major libpq++ improvements(Vince Vielhaber)
-pg_dump now uses -z(ACL's) as default(Bruce)
-backend cache, memory speedups(Tom)
-have pg_dump do everything in one snapshot transaction(Vadim)
-fix for large object memory leakage, fix for pg_dumping(Tom)
-INET type now respects netmask for comparisons
-Make VACUUM ANALYZE only use a readlock(Vadim)
-Allow VIEWs on UNIONS(Jan)
-pg_dump now can generate consistent snapshots on active databases(Vadim)
-
-Source Tree Changes
--------------------
-Improve port matching(Tom)
-Portability fixes for SunOS
-Add Windows NT backend port and enable dynamic loading(Magnus and Daniel Horak)
-New port to Cobalt Qube(Mips) running Linux(Tatsuo)
-Port to NetBSD/m68k(Mr. Mutsuki Nakajima)
-Port to NetBSD/sun3(Mr. Mutsuki Nakajima)
-Port to NetBSD/macppc(Toshimi Aoki)
-Fix for tcl/tk configuration(Vince)
-Removed CURRENT key word for rule queries(Jan)
-NT dynamic loading now works(Daniel Horak)
-Add ARM32 support(Andrew McMurry)
-Better support for HP-UX 11 and UnixWare
-Improve file handling to be more uniform, prevent file descriptor leak(Tom)
-New install commands for plpgsql(Jan)
-    
-   
-  
-
-
-
-Release 6.4.2
-
-  
-  Release date
-  1998-12-20
-  
-
-
-The 6.4.1 release was improperly packaged.  This also has one additional
-bug fix.
-
-
-
-
-Migration to Version 6.4.2
-
-
-A dump/restore is not required for those running
-6.4.*.
-
-
-
-Changes
-
-
-
-Fix for datetime constant problem on some platforms(Thomas)
-
-
-
-
-
-
-
-
-Release 6.4.1
-
-  
-  Release date
-  1998-12-18
-  
-
-
-This is basically a cleanup release for 6.4.  We have fixed a variety of
-problems reported by 6.4 users.
-
-
-
-
-Migration to Version 6.4.1
-
-
-A dump/restore is not required for those running
-6.4.
-
-
-
-Changes
-
-
-
-Add pg_dump -N flag to force double quotes around identifiers.  This is
-       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)
-Fix a couple of pg_dump bugs
-Configure matches template/.similar entries better(Tom)
-Change builtin function names from SPI_* to spi_*
-OR WHERE clause fix(Vadim)
-Fixes for mixed-case table names(Billy)
-contrib/linux/postgres.init.csh/sh fix(Thomas)
-libpq memory overrun fix
-SunOS fixes(Tom)
-Change exp() behavior to generate error on underflow(Thomas)
-pg_dump fixes for memory leak, inheritance constraints, layout change
-update pgaccess to 0.93
-Fix prototype for 64-bit platforms
-Multibyte fixes(Tatsuo)
-New ecpg man page
-Fix memory overruns(Tatsuo)
-Fix for lo_import() crash(Bruce)
-Better search for install program(Tom)
-Timezone fixes(Tom)
-HP-UX fixes(Tom)
-Use implicit type coercion for matching DEFAULT values(Thomas)
-Add routines to help with single-byte (internal) character type(Thomas)
-Compilation of libpq for Windows fixes(Magnus)
-Upgrade to PyGreSQL 2.2(D'Arcy)
-
-
-
-
-
-
-
-
-Release 6.4
-
-  
-  Release date
-  1998-10-30
-  
-
-
-There are many new features and improvements in this release.
-Thanks to our developers and maintainers, nearly every aspect of the system
-has received some attention since the previous release.
-Here is a brief, incomplete summary:
-
-
-
-
-Views and rules are now functional thanks to extensive new code in the
-rewrite rules system from Jan Wieck. He also wrote a chapter on it
-for the Programmer's Guide.
-
-
-
-
-Jan also contributed a second procedural language, PL/pgSQL, to go with the
-original PL/pgTCL procedural language he contributed last release.
-
-
-
-
-
-We have optional multiple-byte character set support from Tatsuo Ishii
-to complement our existing locale support.
-
-
-
-
-
-Client/server communications has been cleaned up, with better support for
-asynchronous messages and interrupts thanks to Tom Lane.
-
-
-
-
-
-The parser will now perform automatic type coercion to match arguments
-to available operators and functions, and to match columns and expressions
-with target columns. This uses a generic mechanism which supports
-the type extensibility features of PostgreSQL.
-There is a new chapter in the User's Guide
-which covers this topic.
-
-
-
-
-
-Three new data types have been added.
-Two types, inet and cidr, support various forms
-of IP network, subnet, and machine addressing. There is now an 8-byte integer
-type available on some platforms. See the chapter on data types
-in the User's Guide for details.
-A fourth type, serial, is now supported by the parser as an
-amalgam of the int4 type, a sequence, and a unique index.
-
-
-
-
-
-Several more SQL92-compatible syntax features have been
-added, including INSERT DEFAULT VALUES
-
-
-
-
-
-The automatic configuration and installation system has received some
-attention, and should be more robust for more platforms than it has ever
-been.
-
-
-
-
-
-
-
-Migration to Version 6.4
-
-
-A dump/restore using pg_dump
-or pg_dumpall
-is required for those wishing to migrate data from any
-previous release of PostgreSQL.
-
-
-
-  
-Changes
-
-   
-    
-Bug Fixes
----------
-Fix for a tiny memory leak in PQsetdb/PQfinish(Bryan)
-Remove char2-16 data types, use char/varchar(Darren)
-Pqfn not handles a NOTICE message(Anders)
-Reduced busywaiting overhead for spinlocks with many backends (dg)
-Stuck spinlock detection (dg)
-Fix up "ISO-style" timespan decoding and encoding(Thomas)
-Fix problem with table drop after rollback of transaction(Vadim)
-Change error message and remove non-functional update message(Vadim)
-Fix for COPY array checking
-Fix for SELECT 1 UNION SELECT NULL
-Fix for buffer leaks in large object calls(Pascal)
-Change owner from oid to int4 type(Bruce)
-Fix a bug in the oracle compatibility functions btrim() ltrim() and rtrim()
-Fix for shared invalidation cache overflow(Massimo)
-Prevent file descriptor leaks in failed COPY's(Bruce)
-Fix memory leak in libpgtcl's pg_select(Constantin)
-Fix problems with username/passwords over 8 characters(Tom)
-Fix problems with handling of asynchronous NOTIFY in backend(Tom)
-Fix of many bad system table entries(Tom)
-
-Enhancements
-------------
-Upgrade ecpg and ecpglib,see src/interfaces/ecpc/ChangeLog(Michael)
-Show the index used in an EXPLAIN(Zeugswetter)
-EXPLAIN  invokes  rule system and shows plan(s) for rewritten queries(Jan)
-Multibyte awareness of many data types and functions, via configure(Tatsuo)
-New configure --with-mb option(Tatsuo)
-New initdb --pgencoding option(Tatsuo)
-New createdb -E multibyte option(Tatsuo)
-Select version(); now returns PostgreSQL version(Jeroen)
-libpq now allows asynchronous clients(Tom)
-Allow cancel from client of backend query(Tom)
-psql now cancels query with Control-C(Tom)
-libpq users need not issue dummy queries to get NOTIFY messages(Tom)
-NOTIFY now sends sender's PID, so you can tell whether it was your own(Tom)
-PGresult struct now includes associated error message, if any(Tom)
-Define "tz_hour" and "tz_minute" arguments to date_part()(Thomas)
-Add routines to convert between varchar and bpchar(Thomas)
-Add routines to allow sizing of varchar and bpchar into target columns(Thomas)
-Add bit flags to support timezonehour and minute in data retrieval(Thomas)
-Allow more variations on valid floating point numbers (e.g. ".1", "1e6")(Thomas)
-Fixes for unary minus parsing with leading spaces(Thomas)
-Implement TIMEZONE_HOUR, TIMEZONE_MINUTE per SQL92 specs(Thomas)
-Check for and properly ignore FOREIGN KEY column constraints(Thomas)
-Define USER as synonym for CURRENT_USER per SQL92 specs(Thomas)
-Enable HAVING clause but no fixes elsewhere yet.
-Make "char" type a synonym for "char(1)" (actually implemented as bpchar)(Thomas)
-Save string type if specified for DEFAULT clause handling(Thomas)
-Coerce operations involving different data types(Thomas)
-Allow some index use for columns of different types(Thomas)
-Add capabilities for automatic type conversion(Thomas)
-Cleanups for large objects, so file is truncated on open(Peter)
-Readline cleanups(Tom)
-Allow psql  \f \ to make spaces as delimiter(Bruce)
-Pass pg_attribute.atttypmod to the frontend for column field lengths(Tom,Bruce)
-Msql compatibility library in /contrib(Aldrin)
-Remove the requirement that ORDER/GROUP BY clause identifiers be
-included in the target list(David)
-Convert columns to match columns in UNION clauses(Thomas)
-Remove fork()/exec() and only do fork()(Bruce)
-Jdbc cleanups(Peter)
-Show backend status on ps command line(only works on some platforms)(Bruce)
-Pg_hba.conf now has a sameuser option in the database field
-Make lo_unlink take oid param, not int4
-New DISABLE_COMPLEX_MACRO for compilers that cannot handle our macros(Bruce)
-Libpgtcl now handles NOTIFY as a Tcl event, need not send dummy queries(Tom)
-libpgtcl cleanups(Tom)
-Add -error option to libpgtcl's pg_result command(Tom)
-New locale patch, see docs/README/locale(Oleg)
-Fix for pg_dump so CONSTRAINT and CHECK syntax is correct(ccb)
-New contrib/lo code for large object orphan removal(Peter)
-New psql command "SET CLIENT_ENCODING TO 'encoding'" for multibytes
-feature, see /doc/README.mb(Tatsuo)
-contrib/noupdate code to revoke update permission on a column
-libpq can now be compiled on Windows(Magnus)
-Add PQsetdbLogin() in libpq
-New 8-byte integer type, checked by configure for OS support(Thomas)
-Better support for quoted table/column names(Thomas)
-Surround table and column names with double-quotes in pg_dump(Thomas)
-PQreset() now works with passwords(Tom)
-Handle case of GROUP BY target list column number out of range(David)
-Allow UNION in subselects
-Add auto-size to screen to \d? commands(Bruce)
-Use UNION to show all \d? results in one query(Bruce)
-Add \d? field search feature(Bruce)
-Pg_dump issues fewer \connect requests(Tom)
-Make pg_dump -z flag work better, document it in manual page(Tom)
-Add HAVING clause with full support for subselects and unions(Stephan)
-Full text indexing routines in contrib/fulltextindex(Maarten)
-Transaction ids now stored in shared memory(Vadim)
-New PGCLIENTENCODING when issuing COPY command(Tatsuo)
-Support for SQL92 syntax "SET NAMES"(Tatsuo)
-Support for LATIN2-5(Tatsuo)
-Add UNICODE regression test case(Tatsuo)
-Lock manager cleanup, new locking modes for LLL(Vadim)
-Allow index use with OR clauses(Bruce)
-Allows "SELECT NULL ORDER BY 1;"
-Explain VERBOSE prints the plan, and now pretty-prints the plan to
-the postmaster log file(Bruce)
-Add indexes display to \d command(Bruce)
-Allow GROUP BY on functions(David)
-New pg_class.relkind for large objects(Bruce)
-New way to send libpq NOTICE messages to a different location(Tom)
-New \w write command to psql(Bruce)
-New /contrib/findoidjoins scans oid columns to find join relationships(Bruce)
-Allow binary-compatible indexes to be considered when checking for valid
-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
-System indexes are now multikey(Bruce)
-Oidint2, oidint4, and oidname types are removed(Bruce)
-Use system cache for more system table lookups(Bruce)
-New backend programming language PL/pgSQL in backend/pl(Jan)
-New SERIAL data type, auto-creates sequence/index(Thomas)
-Enable assert checking without a recompile(Massimo)
-User lock enhancements(Massimo)
-New setval() command to set sequence value(Massimo)
-Auto-remove unix socket file on start-up if no postmaster running(Massimo)
-Conditional trace package(Massimo)
-New UNLISTEN command(Massimo)
-psql and libpq now compile under Windows using win32.mak(Magnus)
-Lo_read no longer stores trailing NULL(Bruce)
-Identifiers are now truncated to 31 characters internally(Bruce)
-Createuser options now available on the command line
-Code for 64-bit integer supported added, configure tested, int8 type(Thomas)
-Prevent file descriptor leaf from failed COPY(Bruce)
-New pg_upgrade command(Bruce)
-Updated /contrib directories(Massimo)
-New CREATE TABLE DEFAULT VALUES statement available(Thomas)
-New INSERT INTO TABLE DEFAULT VALUES statement available(Thomas)
-New DECLARE and FETCH feature(Thomas)
-libpq's internal structures now not exported(Tom)
-Allow up to 8 key indexes(Bruce)
-Remove ARCHIVE key word, that is no longer used(Thomas)
-pg_dump -n flag to suppress quotes around indentifiers
-disable system columns for views(Jan)
-new INET and CIDR types for network addresses(TomH, Paul)
-no more double quotes in psql output
-pg_dump now dumps views(Terry)
-new SET QUERY_LIMIT(Tatsuo,Jan)
-
-Source Tree Changes
--------------------
-/contrib cleanup(Jun)
-Inline some small functions called for every row(Bruce)
-Alpha/linux fixes
-HP-UX cleanups(Tom)
-Multibyte regression tests(Soonmyung.)
-Remove --disabled options from configure
-Define PGDOC to use POSTGRESDIR by default
-Make regression optional
-Remove extra braces code to pgindent(Bruce)
-Add bsdi shared library support(Bruce)
-New --without-CXX support configure option(Brook)
-New FAQ_CVS
-Update backend flowchart in tools/backend(Bruce)
-Change atttypmod from int16 to int32(Bruce, Tom)
-Getrusage() fix for platforms that do not have it(Tom)
-Add PQconnectdb, PGUSER, PGPASSWORD to libpq man page
-NS32K platform fixes(Phil Nelson, John Buller)
-SCO 7/UnixWare 2.x fixes(Billy,others)
-Sparc/Solaris 2.5 fixes(Ryan)
-Pgbuiltin.3 is obsolete, move to doc files(Thomas)
-Even more documentation(Thomas)
-Nextstep support(Jacek)
-Aix support(David)
-pginterface manual page(Bruce)
-shared libraries all have version numbers
-merged all OS-specific shared library defines into one file
-smarter TCL/TK configuration checking(Billy)
-smarter perl configuration(Brook)
-configure uses supplied install-sh if no install script found(Tom)
-new Makefile.shlib for shared library configuration(Tom)
-
-
-
-
-
-
-Release 6.3.2
-
-  
-  Release date
-  1998-04-07
-  
-
-
-This is a bug-fix release for 6.3.x.
-Refer to the release notes for version 6.3 for a more complete summary of new features.
-
-
-Summary:
-
-
-
-
-Repairs automatic configuration support for some platforms, including Linux,
-from breakage inadvertently introduced in version 6.3.1.
-
-
-
-
-
-Correctly handles function calls on the left side of BETWEEN and LIKE clauses.
-
-
-
-
-
-
-A dump/restore is NOT required for those running 6.3 or 6.3.1.  A
-make distclean, make, and make install is all that is required.
-This last step should be performed while the postmaster is not running.
-You should re-link any custom applications that use PostgreSQL libraries.
-
-
-For upgrades from pre-6.3 installations,
-refer to the installation and migration instructions for version 6.3.
-
-
-  
-   Changes
-
-   
-    
-Configure detection improvements for tcl/tk(Brook Milligan, Alvin)
-Manual page improvements(Bruce)
-BETWEEN and LIKE fix(Thomas)
-fix for psql \connect used by pg_dump(Oliver Elphick)
-New odbc driver
-pgaccess, version 0.86
-qsort removed, now uses libc version, cleanups(Jeroen)
-fix for buffer over-runs detected(Maurice Gittens)
-fix for buffer overrun in libpgtcl(Randy Kunkee)
-fix for UNION with DISTINCT or ORDER BY(Bruce)
-gettimeofday configure check(Doug Winterburn)
-Fix "indexes not used" bug(Vadim)
-docs additions(Thomas)
-Fix for backend memory leak(Bruce)
-libreadline cleanup(Erwan MAS)
-Remove DISTDIR(Bruce)
-Makefile dependency cleanup(Jeroen van Vianen)
-ASSERT fixes(Bruce)
-    
-   
-  
-
-  Release 6.3.1
-
-  
-  Release date
-  1998-03-23
-  
-
-  
-   Summary:
-
-
-
-
-Additional support for multibyte character sets.
-
-
-
-
-
-Repair byte ordering for mixed-endian clients and servers.
-
-
-
-
-
-Minor updates to allowed SQL syntax.
-
-
-
-
-
-Improvements to the configuration autodetection for installation.
-
-
-
-
-
-
-A dump/restore is NOT required for those running 6.3.  A
-make distclean, make, and make install is all that is required.
-This last step should be performed while the postmaster is not running.
-You should re-link any custom applications that use PostgreSQL libraries.
-
-
-For upgrades from pre-6.3 installations,
-refer to the installation and migration instructions for version 6.3.
-
-
-  
-   Changes
-
-   
-    
-ecpg cleanup/fixes, now version 1.1(Michael Meskes)
-pg_user cleanup(Bruce)
-large object fix for pg_dump and tclsh (alvin)
-LIKE fix for multiple adjacent underscores
-fix for redefining builtin functions(Thomas)
-ultrix4 cleanup
-upgrade to pg_access 0.83
-updated CLUSTER manual page
-multibyte character set support, see doc/README.mb(Tatsuo)
-configure --with-pgport fix
-pg_ident fix
-big-endian fix for backend communications(Kataoka)
-SUBSTR() and substring() fix(Jan)
-several jdbc fixes(Peter)
-libpgtcl improvements, see libptcl/README(Randy Kunkee)
-Fix for "Datasize = 0" error(Vadim)
-Prevent \do from wrapping(Bruce)
-Remove duplicate Russian character set entries
-Sunos4 cleanup
-Allow optional TABLE key word in LOCK and SELECT INTO(Thomas)
-CREATE SEQUENCE options to allow a negative integer(Thomas)
-Add "PASSWORD" as an allowed column identifier(Thomas)
-Add checks for UNION target fields(Bruce)
-Fix Alpha port(Dwayne Bailey)
-Fix for text arrays containing quotes(Doug Gibson)
-Solaris compile fix(Albert Chin-A-Young)
-Better identify tcl and tk libs and includes(Bruce)
-    
-   
-  
-
-  Release 6.3
-
-  
-  Release date
-  1998-03-01
-  
-
-  
-   There are many new features and improvements in this release.
-   Here is a brief, incomplete summary:
-
-   
-    
-     
-      Many new SQL features, including
-      full SQL92 subselect capability
-      (everything is here but target-list subselects).
-     
-    
-
-    
-     
-      Support for client-side environment variables to specify time zone and date style.
-     
-    
-
-    
-     
-      Socket interface for client/server connection. This is the default now
-      so you might need to start postmaster with the
-       flag.
-     
-    
-
-    
-     
-      Better password authorization mechanisms. Default table privileges have changed.
-     
-    
-
-    
-     
-      Old-style time travel
-      has been removed. Performance has been improved.
-     
-    
-   
-  
-
-  
-   
-    Bruce Momjian wrote the following notes to introduce the new release.
-   
-  
-
-  
-   There are some general 6.3 issues that I want to mention.  These are
-   only the big items that cannot be described in one sentence.  A review
-   of the detailed changes list is still needed.
-  
-  
-   First, we now have subselects.  Now that we have them, I would like to
-   mention that without subselects, SQL is a very limited language.
-   Subselects are a major feature, and you should review your code for
-   places where subselects provide a better solution for your queries.  I
-   think you will find that there are more uses for subselects than you might
-   think.  Vadim has put us on the big SQL map with subselects, and fully
-   functional ones too.  The only thing you cannot do with subselects is to
-   use them in the target list.
-  
-  
-   Second, 6.3 uses Unix domain sockets rather than TCP/IP by default.  To
-   enable connections from other machines, you have to use the new
-   postmaster -i option, and of course edit pg_hba.conf.  Also, for this
-   reason, the format of pg_hba.conf has changed.
-  
-  
-   Third, char() fields will now allow faster access than varchar() or
-   text. Specifically, the text and varchar() have a penalty for access to
-   any columns after the first column of this type.  char() used to also
-   have this access penalty, but it no longer does.  This might suggest that
-   you redesign some of your tables, especially if you have short character
-   columns that you have defined as varchar() or text.  This and other
-   changes make 6.3 even faster than earlier releases.
-  
-  
-   We now have passwords definable independent of any Unix file.  There are
-   new SQL USER commands.
-   See the Administrator's Guide for more
-   information.  There is a new table, pg_shadow, which is used to store
-   user information and user passwords, and it by default only SELECT-able
-   by the postgres super-user.  pg_user is now a view of pg_shadow, and is
-   SELECT-able by PUBLIC.  You should keep using pg_user in your
-   application without changes.
-  
-  
-   User-created tables now no longer have SELECT privilege to PUBLIC by
-   default.  This was done because the ANSI standard requires it.  You can
-   of course GRANT any privileges you want after the table is created.
-   System tables continue to be SELECT-able by PUBLIC.
-  
-  
-   We also have real deadlock detection code.  No more sixty-second
-   timeouts.  And the new locking code implements a FIFO better, so there
-   should be less resource starvation during heavy use.
-  
-  
-   Many complaints have been made about inadequate documentation in previous
-   releases.  Thomas has put much effort into many new manuals for this
-   release.  Check out the doc/ directory.
-  
-  
-   For performance reasons, time travel is gone, but can be implemented
-   using triggers (see pgsql/contrib/spi/README).  Please check out the new
-   \d command for types, operators, etc.  Also, views have their own
-   privileges now, not based on the underlying tables, so privileges on
-   them have to be set separately.  Check /pgsql/interfaces for some new
-   ways to talk to PostgreSQL.
-  
-  
-   This is the first release that really required an explanation for
-   existing users.  In many ways, this was necessary because the new
-   release removes many limitations, and the work-arounds people were using
-   are no longer needed.
-  
-
-  
-   Migration to Version 6.3
-
-   
-    A dump/restore using pg_dump
-    or pg_dumpall
-    is required for those wishing to migrate data from any
-    previous release of PostgreSQL.
-   
-  
-
-  
-   Changes
-
-   
-    
-Bug Fixes
----------
-Fix binary cursors broken by MOVE implementation(Vadim)
-Fix for tcl library crash(Jan)
-Fix for array handling, from Gerhard Hintermayer
-Fix acl error, and remove duplicate pqtrace(Bruce)
-Fix psql \e for empty file(Bruce)
-Fix for textcat on varchar() fields(Bruce)
-Fix for DBT Sendproc (Zeugswetter Andres)
-Fix vacuum analyze syntax problem(Bruce)
-Fix for international identifiers(Tatsuo)
-Fix aggregates on inherited tables(Bruce)
-Fix substr() for out-of-bounds data
-Fix for select 1=1 or 2=2, select 1=1 and 2=2, and select sum(2+2)(Bruce)
-Fix notty output to show status result.  -q option still turns it off(Bruce)
-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)
-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)
-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)
-Major large objects fix
-Fix for GROUP BY showing duplicates(Vadim)
-Fix for index scans in MergeJoin(Vadim)
-
-Enhancements
-------------
-Subselects with EXISTS, IN, ALL, ANY key words (Vadim, Bruce, Thomas)
-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)
-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)
-Allow NOT NULL UNIQUE constraint clause (each allowed separately before)(Thomas)
-Allow PostgreSQL-style casting ("::") of non-constants(Thomas)
-Add support for SQL3 TRUE and FALSE boolean constants(Thomas)
-Support SQL92 syntax for IS TRUE/IS FALSE/IS NOT TRUE/IS NOT FALSE(Thomas)
-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)
-Add conversions for int2, int4, and OID types to and from text(Thomas)
-Use shared lock when building indexes(Vadim)
-Free memory allocated for an user query inside transaction block after
-       this query is done, was turned off in <= 6.2.1(Vadim)
-New SQL statement CREATE PROCEDURAL LANGUAGE(Jan)
-New PostgreSQL Procedural Language (PL) backend interface(Jan)
-Rename pg_dump -H option to -h(Bruce)
-Add Java support for passwords, European dates(Peter)
-Use indexes for LIKE and ~, !~ operations(Bruce)
-Add hash functions for datetime and timespan(Thomas)
-Time Travel removed(Vadim, Bruce)
-Add paging for \d and \z, and fix \i(Bruce)
-Add Unix domain socket support to backend and to frontend library(Goran)
-Implement CREATE DATABASE/WITH LOCATION and initlocation utility(Thomas)
-Allow more SQL92 and/or PostgreSQL reserved words as column identifiers(Thomas)
-Augment support for SQL92 SET TIME ZONE...(Thomas)
-SET/SHOW/RESET TIME ZONE uses TZ backend environment variable(Thomas)
-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)
-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)
-Increase 16 char limit on system table/index names to 32 characters(Bruce)
-Rename system indexes(Bruce)
-Add 'GERMAN' option to SET DATESTYLE(Thomas)
-Define an "ISO-style" timespan output format with "hh:mm:ss" fields(Thomas)
-Allow fractional values for delta times (e.g. '2.5 days')(Thomas)
-Validate numeric input more carefully for delta times(Thomas)
-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)
-Dump ACLs, GRANT, REVOKE privileges(Matt)
-Define text, varchar, and bpchar string length functions(Thomas)
-Fix Query handling for inheritance, and cost computations(Bruce)
-Implement CREATE TABLE/AS SELECT (alternative to SELECT/INTO)(Thomas)
-Allow NOT, IS NULL, IS NOT NULL in constraints(Thomas)
-Implement UNIONs for SELECT(Bruce)
-Add UNION, GROUP, DISTINCT to INSERT(Bruce)
-varchar() stores only necessary bytes on disk(Bruce)
-Fix for BLOBs(Peter)
-Mega-Patch for JDBC...see README_6.3 for list of changes(Peter)
-Remove unused "option" from PQconnectdb()
-New LOCK command and lock manual page describing deadlocks(Bruce)
-Add new psql \da, \dd, \df, \do, \dS, and \dT commands(Bruce)
-Enhance psql \z to show sequences(Bruce)
-Show NOT NULL and DEFAULT in psql \d table(Bruce)
-New psql .psqlrc file start-up(Andrew)
-Modify sample start-up script in contrib/linux to show syslog(Thomas)
-New types for IP and MAC addresses in contrib/ip_and_mac(TomH)
-Unix system time conversions with date/time types in contrib/unixdate(Thomas)
-Update of contrib stuff(Massimo)
-Add Unix socket support to DBD::Pg(Goran)
-New python interface (PyGreSQL 2.0)(D'Arcy)
-New frontend/backend protocol has a version number, network byte order(Phil)
-Security features in pg_hba.conf enhanced and documented, many cleanups(Phil)
-CHAR() now faster access than VARCHAR() or TEXT
-ecpg embedded SQL preprocessor
-Reduce system column overhead(Vadmin)
-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)
-Tables now have no default GRANT SELECT TO PUBLIC.  You must
-       explicitly grant such privileges.
-Clean up tutorial examples(Darren)
-
-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
-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)
-Sparc/Linux patch for locking(TomS)
-Remove PORTNAME and reorganize port-specific stuff(Marc)
-Add optimizer README file(Bruce)
-Remove some recursion in optimizer and clean up some code there(Bruce)
-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)
-Various fixes NetBSD/Sparc related(TomH)
-Alpha linux locking(Travis,Ryan)
-Change elog(WARN) to elog(ERROR)(Bruce)
-FAQ for FreeBSD(Marc)
-Bring in the PostODBC source tree as part of our standard distribution(Marc)
-A minor patch for HP/UX 10 vs 9(Stan)
-New pg_attribute.atttypmod for type-specific info like varchar length(Bruce)
-UnixWare patches(Billy)
-New i386 'lock' for spinlock asm(Billy)
-Support for multiplexed backends is removed
-Start an OpenBSD port
-Start an AUX port
-Start a Cygnus port
-Add string functions to regression suite(Thomas)
-Expand a few function names formerly truncated to 16 characters(Thomas)
-Remove un-needed malloc() calls and replace with palloc()(Bruce)
-
-
-
-
-
-
-Release 6.2.1
-
-  
-  Release date
-  1997-10-17
-  
-
-
-6.2.1 is a bug-fix and usability release on 6.2.
-
-
-Summary:
-
-
-
-
-Allow strings to span lines, per SQL92.
-
-
-
-
-
-Include example trigger function for inserting user names on table updates.
-
-
-
-
-
-
-This is a minor bug-fix release on 6.2.
-For upgrades from pre-6.2 systems, a full dump/reload is required.
-Refer to the 6.2 release notes for instructions.
-
-
-
-Migration from version 6.2 to version 6.2.1
-
-
-This is a minor bug-fix release. A dump/reload is not required from version 6.2,
-but is required from any release prior to 6.2.
-
-
-In upgrading from version 6.2, if you choose to dump/reload you will find that
-avg(money) is now calculated correctly. All other bug fixes take effect
-upon updating the executables.
-
-
-Another way to avoid dump/reload is to use the following SQL command
-from psql to update the existing system table:
-
-
- update pg_aggregate set aggfinalfn = 'cash_div_flt8'
-  where aggname = 'avg' and aggbasetype = 790;
-
-
-
-This will need to be done to every existing database, including template1.
-
-
-
-  
-   Changes
-
-   
-    
-Allow TIME and TYPE column names(Thomas)
-Allow larger range of true/false as boolean values(Thomas)
-Support output of "now" and "current"(Thomas)
-Handle DEFAULT with INSERT of NULL properly(Vadim)
-Fix for relation reference counts problem in buffer manager(Vadim)
-Allow strings to span lines, like ANSI(Thomas)
-Fix for backward cursor with ORDER BY(Vadim)
-Fix avg(cash) computation(Thomas)
-Fix for specifying a column twice in ORDER/GROUP BY(Vadim)
-Documented new libpq function to return affected rows, PQcmdTuples(Bruce)
-Trigger function for inserting user names for INSERT/UPDATE(Brook Milligan)
-    
-   
-  
-
-
-Release 6.2
-
-  
-  Release date
-  1997-10-02
-  
-
-
-A dump/restore is required for those wishing to migrate data from
-previous releases of PostgreSQL.
-
-
-
-Migration from version 6.1 to version 6.2
-
-
-This migration requires a complete dump of the 6.1 database and a
-restore of the database in 6.2.
-
-
-Note that the pg_dump and pg_dumpall utility from 6.2 should be used
-to dump the 6.1 database.
-
-
-
-
-Migration from version 1.<replaceable>x</> to version 6.2
-
-
-Those migrating from earlier 1.* releases should first upgrade to 1.09
-because the COPY output format was improved from the 1.02 release.
-
-
-
-  
-   Changes
-
-   
-    
-Bug Fixes
----------
-Fix problems with pg_dump for inheritance, sequences, archive tables(Bruce)
-Fix compile errors on overflow due to shifts, unsigned, and bad prototypes
-        from Solaris(Diab Jerius)
-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)
-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)
-Fix GROUP BY when order of entries is different from order
-       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)
-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)
-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)
-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)
-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)
-Add syntax and warnings for UNION, HAVING, INNER and OUTER JOIN (SQL92)(Thomas)
-Add more reserved words, mostly for SQL92 compliance(Thomas)
-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)
-Add routine to convert circle-box(Thomas)
-Merge conflicting operators for different geometric data types(Thomas)
-Replace distance operator "<===>" with "<->"(Thomas)
-Replace "above" operator "!^" with ">^" and "below" operator "!|" with "<^"(Thomas)
-Add routines for text trimming on both ends, substring, and string position(Thomas)
-Added conversion routines circle(box) and poly(circle)(Thomas)
-Allow internal sorts to be stored in memory rather than in files(Bruce & Vadim)
-Allow 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)
-Reduce open() calls(Bruce)
-psql:  Add PAGER for \h and \?,\C fix
-Fix for psql pager when no tty(Bruce)
-New entab utility(Bruce)
-General trigger functions for referential integrity (Vadim)
-General trigger functions for time travel (Vadim)
-General trigger functions for AUTOINCREMENT/IDENTITY feature (Vadim)
-MOVE implementation (Vadim)
-
-Source Tree Changes
--------------------
-HP-UX 10 patches (Vladimir Turin)
-Added SCO support, (Daniel Harris)
-MkLinux patches (Tatsuo Ishii)
-Change geometric box terminology from "length" to "width"(Thomas)
-Deprecate temporary unstored slope fields in geometric code(Thomas)
-Remove restart instructions from INSTALL(Bruce)
-Look in /usr/ucb first for install(Bruce)
-Fix c++ copy example code(Thomas)
-Add -o to psql manual page(Bruce)
-Prevent relname unallocated string length from being copied into database(Bruce)
-Cleanup for NAMEDATALEN use(Bruce)
-Fix pg_proc names over 15 chars in output(Bruce)
-Add strNcpy() function(Bruce)
-remove some (void) casts that are unnecessary(Bruce)
-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)
-Changes for Digital Unix
-Portability fix for pg_dumpall(Bruce)
-Rename pg_attribute.attnvals to attdispersion(Bruce)
-"intro/unix" manual page now "pgintro"(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 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)
-
-
-
-
-
-
-Release 6.1.1
-
-  
-  Release date
-  1997-07-22
-  
-
-
-Migration from version 6.1 to version 6.1.1
-
-
-This is a minor bug-fix release. A dump/reload is not required from version 6.1,
-but is required from any release prior to 6.1.
-Refer to the release notes for 6.1 for more details.
-
-
-
-  
-   Changes
-
-   
-    
-fix for SET with options (Thomas)
-allow pg_dump/pg_dumpall to preserve ownership of all tables/objects(Bruce)
-new psql \connect option allows changing usernames without changing databases
-fix for initdb --debug option(Yoshihiko Ichikawa))
-lextest cleanup(Bruce)
-hash fixes(Vadim)
-fix date/time month boundary arithmetic(Thomas)
-fix timezone daylight handling for some ports(Thomas, Bruce, Tatsuo)
-timestamp overhauled to use standard functions(Thomas)
-other code cleanup in date/time routines(Thomas)
-psql's \d now case-insensitive(Bruce)
-psql's backslash commands can now have trailing semicolon(Bruce)
-fix memory leak in psql when using \g(Bruce)
-major fix for endian handling of communication to server(Thomas, Tatsuo)
-Fix for Solaris assembler and include files(Yoshihiko Ichikawa)
-allow underscores in usernames(Bruce)
-pg_dumpall now returns proper status, portability fix(Bruce)
-    
-   
-  
-
-
-Release 6.1
-
-  
-  Release date
-  1997-06-08
-  
-
-
- The regression tests have been adapted and extensively modified for the
- 6.1 release of PostgreSQL.
-
-
-
- Three new data types (datetimetimespan, and circle) have been added to
- the native set of PostgreSQL types. Points, boxes, paths, and polygons
- have had their output formats made consistent across the data types.
- The polygon output in misc.out has only been spot-checked for correctness
- relative to the original regression output.
-
-
-
PostgreSQL 6.1 introduces a new, alternate
-optimizer which uses genetic
- algorithms. These algorithms introduce a random behavior in the ordering
- of query results when the query contains multiple qualifiers or multiple
- tables (giving the optimizer a choice on order of evaluation). Several
- regression tests have been modified to explicitly order the results, and
- hence are insensitive to optimizer choices. A few regression tests are
- for data types which are inherently unordered (e.g. points and time
- intervals) and tests involving those types are explicitly bracketed with
set geqo to 'off' and reset geqo.
-
-
-
- The interpretation of array specifiers (the curly braces around atomic
- values) appears to have changed sometime after the original regression
- tests were generated. The current ./expected/*.out files reflect this
- new interpretation, which might not be correct!
-
-
-
- The float8 regression test fails on at least some platforms. This is due
- to differences in implementations of pow() and exp() and the signaling
- mechanisms used for overflow and underflow conditions.
-
-
-
- The random results in the random test should cause the
random test to be failed, since the
- regression tests are evaluated using a simple diff. However,
random does not seem to produce random results on my test
- machine (Linux/gcc/i686).
-
-
-
-Migration to Version 6.1
-
-
-This migration requires a complete dump of the 6.0 database and a
-restore of the database in 6.1.
-
-
-Those migrating from earlier 1.* releases should first upgrade to 1.09
-because the COPY output format was improved from the 1.02 release.
-
-
-
-  
-   Changes
-
-   
-    
-Bug Fixes
----------
-packet length checking in library routines
-lock manager priority patch
-check for under/over flow of float8(Bruce)
-multitable join fix(Vadim)
-SIGPIPE crash fix(Darren)
-large object fixes(Sven)
-allow btree indexes to handle NULLs(Vadim)
-timezone fixes(D'Arcy)
-select SUM(x) can return NULL on no rows(Thomas)
-internal optimizer, executor bug fixes(Vadim)
-fix problem where inner loop in < or <= has no rows(Vadim)
-prevent re-commuting join index clauses(Vadim)
-fix join clauses for multiple tables(Vadim)
-fix hash, hashjoin for arrays(Vadim)
-fix btree for abstime type(Vadim)
-large object fixes(Raymond)
-fix buffer leak in hash indexes (Vadim)
-fix rtree for use in inner scan (Vadim)
-fix gist for use in inner scan, cleanups (Vadim, Andrea)
-avoid unnecessary local buffers allocation (Vadim, Massimo)
-fix local buffers leak in transaction aborts (Vadim)
-fix file manager memmory leaks, cleanups (Vadim, Massimo)
-fix storage manager memmory leaks (Vadim)
-fix btree duplicates handling (Vadim)
-fix deleted rows reincarnation caused by vacuum (Vadim)
-fix SELECT varchar()/char() INTO TABLE made zero-length fields(Bruce)
-many psql, pg_dump, and libpq memory leaks fixed using Purify (Igor)
-
-Enhancements
-------------
-attribute optimization statistics(Bruce)
-much faster new btree bulk load code(Paul)
-BTREE UNIQUE added to bulk load code(Vadim)
-new lock debug code(Massimo)
-massive changes to libpg++(Leo)
-new GEQO optimizer speeds table multitable optimization(Martin)
-new WARN message for non-unique insert into unique key(Marc)
-update x=-3, no spaces, now valid(Bruce)
-remove case-sensitive identifier handling(Bruce,Thomas,Dan)
-debug backend now pretty-prints tree(Darren)
-new Oracle character functions(Edmund)
-new plaintext password functions(Dan)
-no such class or insufficient privilege changed to distinct messages(Dan)
-new ANSI timestamp function(Dan)
-new ANSI Time and Date types (Thomas)
-move large chunks of data in backend(Martin)
-multicolumn btree indexes(Vadim)
-new SET var TO value command(Martin)
-update transaction status on reads(Dan)
-new locale settings for character types(Oleg)
-new SEQUENCE serial number generator(Vadim)
-GROUP BY function now possible(Vadim)
-re-organize regression test(Thomas,Marc)
-new optimizer operation weights(Vadim)
-new psql \z grant/permit option(Marc)
-new MONEY data type(D'Arcy,Thomas)
-tcp socket communication speed improved(Vadim)
-new VACUUM option for attribute statistics, and for certain columns (Vadim)
-many geometric type improvements(Thomas,Keith)
-additional regression tests(Thomas)
-new datestyle variable(Thomas,Vadim,Martin)
-more comparison operators for sorting types(Thomas)
-new conversion functions(Thomas)
-new more compact btree format(Vadim)
-allow pg_dumpall to preserve database ownership(Bruce)
-new SET GEQO=# and R_PLANS variable(Vadim)
-old (!GEQO) optimizer can use right-sided plans (Vadim)
-typechecking improvement in SQL parser(Bruce)
-new SET, SHOW, RESET commands(Thomas,Vadim)
-new \connect database USER option
-new destroydb -i option (Igor)
-new \dt and \di psql commands (Darren)
-SELECT "\n" now escapes newline (A. Duursma)
-new geometry conversion functions from old format (Thomas)
-
-Source tree changes
--------------------
-new configuration script(Marc)
-readline configuration option added(Marc)
-OS-specific configuration options removed(Marc)
-new OS-specific template files(Marc)
-no more need to edit Makefile.global(Marc)
-re-arrange include files(Marc)
-nextstep patches (Gregor Hoffleit)
-removed Windows-specific code(Bruce)
-removed postmaster -e option, now only postgres -e option (Bruce)
-merge duplicate library code in front/backends(Martin)
-now works with eBones, international Kerberos(Jun)
-more shared library support
-c++ include file cleanup(Bruce)
-warn about buggy flex(Bruce)
-DG/UX, Ultrix, IRIX, AIX portability fixes
-
-
-
-
-
-
-Release 6.0
-
-  
-  Release date
-  1997-01-29
-  
-
-
-A dump/restore is required for those wishing to migrate data from
-previous releases of PostgreSQL.
-
-
-
-Migration from version 1.09 to version 6.0
-
-
-This migration requires a complete dump of the 1.09 database and a
-restore of the database in 6.0.
-
-
-
-
-Migration from pre-1.09 to version 6.0
-
-
-Those migrating from earlier 1.* releases should first upgrade to 1.09
-because the COPY output format was improved from the 1.02 release.
-
-
-
-  
-   Changes
-
-   
-    
-Bug Fixes
----------
-ALTER TABLE bug - running postgres process needs to re-read table definition
-Allow vacuum to be run on one table or entire database(Bruce)
-Array fixes
-Fix array over-runs of memory writes(Kurt)
-Fix elusive btree range/non-range bug(Dan)
-Fix for hash indexes on some types like time and date
-Fix for pg_log size explosion
-Fix permissions on lo_export()(Bruce)
-Fix uninitialized reads of memory(Kurt)
-Fixed ALTER TABLE ... char(3) bug(Bruce)
-Fixed a few small memory leaks
-Fixed EXPLAIN handling of options and changed full_path option name
-Fixed output of group acl privileges
-Memory leaks (hunt and destroy with tools like Purify(Kurt)
-Minor improvements to rules system
-NOTIFY fixes
-New asserts for run-checking
-Overhauled parser/analyze code to properly report errors and increase speed
-Pg_dump -d now handles NULL's properly(Bruce)
-Prevent SELECT NULL from crashing server (Bruce)
-Properly report errors when INSERT ... SELECT columns did not match
-Properly report errors when insert column names were not correct
-psql \g filename now works(Bruce)
-psql fixed problem with multiple statements on one line with multiple outputs
-Removed duplicate system OIDs
-SELECT * INTO TABLE . GROUP/ORDER BY gives unlink error if table exists(Bruce)
-Several fixes for queries that crashed the backend
-Starting quote in insert string errors(Bruce)
-Submitting an empty query now returns empty status, not just " " query(Bruce)
-
-Enhancements
-------------
-Add EXPLAIN manual page(Bruce)
-Add UNIQUE index capability(Dan)
-Add hostname/user level access control rather than just hostname and user
-Add synonym of != for <>(Bruce)
-Allow "select oid,* from table"
-Allow BY,ORDER BY to specify columns by number, or by non-alias table.column(Bruce)
-Allow COPY from the frontend(Bryan)
-Allow GROUP BY to use alias column name(Bruce)
-Allow actual compression, not just reuse on the same page(Vadim)
-Allow installation-configuration option to auto-add all local users(Bryan)
-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)
-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
-Execute lowercase function names if not found with exact case
-Fixes for aggregate/GROUP processing, allow 'select sum(func(x),sum(x+y) from z'
-Gist now included in the distribution(Marc)
-Idend authentication of local users(Bryan)
-Implement BETWEEN qualifier(Bruce)
-Implement IN qualifier(Bruce)
-libpq has PQgetisnull()(Bruce)
-libpq++ improvements
-New options to initdb(Bryan)
-Pg_dump allow dump of OIDs(Bruce)
-Pg_dump create indexes after tables are loaded for speed(Bruce)
-Pg_dumpall dumps all databases, and the user table
-Pginterface additions for NULL values(Bruce)
-Prevent postmaster from being run as root
-psql \h and \? is now readable(Bruce)
-psql allow backslashed, semicolons anywhere on the line(Bruce)
-psql changed command prompt for lines in query or in quotes(Bruce)
-psql char(3) now displays as (bp)char in \d output(Bruce)
-psql return code now more accurate(Bryan?)
-psql updated help syntax(Bruce)
-Re-visit and fix vacuum(Vadim)
-Reduce size of regression diffs, remove timezone name difference(Bruce)
-Remove compile-time parameters to enable binary distributions(Bryan)
-Reverse meaning of HBA masks(Bryan)
-Secure Authentication of local users(Bryan)
-Speed up vacuum(Vadim)
-Vacuum now had VERBOSE option(Bruce)
-
-Source tree changes
--------------------
-All functions now have prototypes that are compared against the calls
-Allow asserts to be disabled easily from Makefile.global(Bruce)
-Change oid constants used in code to #define names
-Decoupled sparc and solaris defines(Kurt)
-Gcc -Wall compiles cleanly with warnings only from unfixable constructs
-Major include file reorganization/reduction(Marc)
-Make now stops on compile failure(Bryan)
-Makefile restructuring(Bryan, Marc)
-Merge bsdi_2_1 to bsdi(Bruce)
-Monitor program removed
-Name change from Postgres95 to PostgreSQL
-New config.h file(Marc, Bryan)
-PG_VERSION now set to 6.0 and used by postmaster
-Portability additions, including Ultrix, DG/UX, AIX, and Solaris
-Reduced the number of #define's, centralized #define's
-Remove duplicate OIDS in system tables(Dan)
-Remove duplicate system catalog info or report mismatches(Dan)
-Removed many os-specific #define's
-Restructured object file generation/location(Bryan, Marc)
-Restructured port-specific file locations(Bryan, Marc)
-Unused/uninitialized variables corrected
-
-
-
-
-
-
-Release 1.09
-
-  
-  Release date
-  1996-11-04
-  
-
-
-Sorry, we didn't keep track of changes from 1.02 to 1.09.  Some of
-the changes listed in 6.0 were actually included in the 1.02.1 to 1.09
-releases.
-
-
-
-
-Release 1.02
-
-  
-  Release date
-  1996-08-01
-  
-
-
-Migration from version 1.02 to version 1.02.1
-
-
-Here is a new migration file for 1.02.1.  It includes the 'copy' change
-and a script to convert old ASCII files.
-
-
-
-The following notes are for the benefit of users who want to migrate
-databases from Postgres95 1.01 and 1.02 to Postgres95 1.02.1.
-
-
-If you are starting afresh with Postgres95 1.02.1 and do not need
-to migrate old databases, you do not need to read any further.
-
-
-
-
-In order to upgrade older Postgres95 version 1.01 or 1.02 databases to
-version 1.02.1, the following steps are required:
-
-
-
-
-Start up a new 1.02.1 postmaster
-
-
-
-
-Add the new built-in functions and operators of 1.02.1 to 1.01 or 1.02
-  databases.  This is done by running the new 1.02.1 server against
-  your own 1.01 or 1.02 database and applying the queries attached at
-  the end of the file.   This can be done easily through psql.  If your
-  1.01 or 1.02 database is named testdb and you have cut the commands
-  from the end of this file and saved them in addfunc.sql:
-
-       % psql testdb -f addfunc.sql
-
-
-Those upgrading 1.02 databases will get a warning when executing the
-last two statements in the file because they are already present in 1.02.  This is
-not a cause for concern.
-
-
-
-
-
-
-Dump/Reload Procedure
-
-
-If you are trying to reload a pg_dump or text-mode, copy tablename to
-stdout generated with a previous version, you will need to run the
-attached sed script on the ASCII file before loading it into the
-database.  The old format used '.' as end-of-data, while '\.' is now the
-end-of-data marker.  Also, empty strings are now loaded in as '' rather
-than NULL. See the copy manual page for full details.
-
-
-       sed 's/^\.$/\\./g' <in_file >out_file
-
-
-
-If you are loading an older binary copy or non-stdout copy, there is no
-end-of-data character, and hence no conversion necessary.
-
-
--- following lines added by agc to reflect the case-insensitive
--- regexp searching for varchar (in 1.02), and bpchar (in 1.02.1)
-create operator ~* (leftarg = bpchar, rightarg = text, procedure = texticregexeq);
-create operator !~* (leftarg = bpchar, rightarg = text, procedure = texticregexne);
-create operator ~* (leftarg = varchar, rightarg = text, procedure = texticregexeq);
-create operator !~* (leftarg = varchar, rightarg = text, procedure = texticregexne);
-
-
-
-
-
-Changes
-
-
-
-Source code maintenance and development
- * worldwide team of volunteers
- * the source tree now in CVS at ftp.ki.net
-
-Enhancements
- * psql (and underlying libpq library) now has many more options for
-   formatting output, including HTML
- * pg_dump now output the schema and/or the data, with many fixes to
-   enhance completeness.
- * psql used in place of monitor in administration shell scripts.
-   monitor to be deprecated in next release.
- * date/time functions enhanced
- * NULL insert/update/comparison fixed/enhanced
- * TCL/TK lib and shell fixed to work with both tck7.4/tk4.0 and tcl7.5/tk4.1
-
-Bug Fixes (almost too numerous to mention)
- * indexes
- * storage management
- * check for NULL pointer before dereferencing
- * Makefile fixes
-
-New Ports
- * added SolarisX86 port
- * added BSD/OS 2.1 port
- * added DG/UX port
-
-
 
-
-
-
-
-Release 1.01
-
-   
-   Release date
-   1996-02-23
-   
-
-
-
-Migration from version 1.0 to version 1.01
-
-
-The following notes are for the benefit of users who want to migrate
-databases from Postgres95 1.0 to Postgres95 1.01.
-
-
-If you are starting afresh with Postgres95 1.01 and do not need
-to migrate old databases, you do not need to read any further.
-
-
-In order to Postgres95 version 1.01 with databases created with
-Postgres95 version 1.0, the following steps are required:
-
-
-
-
-Set the definition of NAMEDATALEN in src/Makefile.global to 16
-   and OIDNAMELEN to 20.
-
-
-
-
-Decide whether you want to use Host based authentication.
-
-
-
-
-If you do, you must create a file name pg_hba in your top-level data
-   directory (typically the value of your $PGDATA).  src/libpq/pg_hba
-   shows an example syntax.
-
-
-
-
-If you do not want host-based authentication, you can comment out
-   the line:
-
-        HBA = 1
-
-   in src/Makefile.global
-
-
-   Note that host-based authentication is turned on by default, and if
-   you do not take steps A or B above, the out-of-the-box 1.01 will
-   not allow you to connect to 1.0 databases.
-
-
-
-
-
-
-
-Compile and install 1.01, but DO NOT do the initdb step.
-
-
-
-
-Before doing anything else, terminate your 1.0 postmaster, and
-   backup your existing $PGDATA directory.
-
-
-
-
-Set your PGDATA environment variable to your 1.0 databases, but set up
-   path up so that 1.01 binaries are being used.
-
-
-
-
-Modify the file $PGDATA/PG_VERSION from 5.0 to 5.1
-
-
-
-
-Start up a new 1.01 postmaster
-
-
-
-
-Add the new built-in functions and operators of 1.01 to 1.0
-   databases.  This is done by running the new 1.01 server against
-   your own 1.0 database and applying the queries attached and saving
-   in the file 1.0_to_1.01.sql.   This can be done easily through psql.
-   If your 1.0 database is name testdb:
-
-
-        % psql testdb -f 1.0_to_1.01.sql
-
-
-and then execute the following commands (cut and paste from here):
-
-
--- add builtin functions that are new to 1.01
-
-create function int4eqoid (int4, oid) returns bool as 'foo'
-language 'internal';
-create function oideqint4 (oid, int4) returns bool as 'foo'
-language 'internal';
-create function char2icregexeq (char2, text) returns bool as 'foo'
-language 'internal';
-create function char2icregexne (char2, text) returns bool as 'foo'
-language 'internal';
-create function char4icregexeq (char4, text) returns bool as 'foo'
-language 'internal';
-create function char4icregexne (char4, text) returns bool as 'foo'
-language 'internal';
-create function char8icregexeq (char8, text) returns bool as 'foo'
-language 'internal';
-create function char8icregexne (char8, text) returns bool as 'foo'
-language 'internal';
-create function char16icregexeq (char16, text) returns bool as 'foo'
-language 'internal';
-create function char16icregexne (char16, text) returns bool as 'foo'
-language 'internal';
-create function texticregexeq (text, text) returns bool as 'foo'
-language 'internal';
-create function texticregexne (text, text) returns bool as 'foo'
-language 'internal';
-
--- add builtin functions that are new to 1.01
-
-create operator = (leftarg = int4, rightarg = oid, procedure = int4eqoid);
-create operator = (leftarg = oid, rightarg = int4, procedure = oideqint4);
-create operator ~* (leftarg = char2, rightarg = text, procedure = char2icregexeq);
-create operator !~* (leftarg = char2, rightarg = text, procedure = char2icregexne);
-create operator ~* (leftarg = char4, rightarg = text, procedure = char4icregexeq);
-create operator !~* (leftarg = char4, rightarg = text, procedure = char4icregexne);
-create operator ~* (leftarg = char8, rightarg = text, procedure = char8icregexeq);
-create operator !~* (leftarg = char8, rightarg = text, procedure = char8icregexne);
-create operator ~* (leftarg = char16, rightarg = text, procedure = char16icregexeq);
-create operator !~* (leftarg = char16, rightarg = text, procedure = char16icregexne);
-create operator ~* (leftarg = text, rightarg = text, procedure = texticregexeq);
-create operator !~* (leftarg = text, rightarg = text, procedure = texticregexne);
-
-
-
-
-
-
-
-Changes
-
-
-
-Incompatibilities:
- * 1.01 is backwards compatible with 1.0 database provided the user
-   follow the steps outlined in the MIGRATION_from_1.0_to_1.01 file.
-   If those steps are not taken, 1.01 is not compatible with 1.0 database.
-
-Enhancements:
- * added PQdisplayTuples() to libpq and changed monitor and psql to use it
- * added NeXT port (requires SysVIPC implementation)
- * added CAST .. AS ... syntax
- * added ASC and DESC key words
- * added 'internal' as a possible language for CREATE FUNCTION
-   internal functions are C functions which have been statically linked
-   into the postgres backend.
- * a new type "name" has been added for system identifiers (table names,
-   attribute names, etc.)  This replaces the old char16 type.   The
-   of name is set by the NAMEDATALEN #define in src/Makefile.global
- * a readable reference manual that describes the query language.
- * added host-based access control.  A configuration file ($PGDATA/pg_hba)
-   is used to hold the configuration data.  If host-based access control
-   is not desired, comment out HBA=1 in src/Makefile.global.
- * changed regex handling to be uniform use of Henry Spencer's regex code
-   regardless of platform.  The regex code is included in the distribution
- * added functions and operators for case-insensitive regular expressions.
-   The operators are ~* and !~*.
- * pg_dump uses COPY instead of SELECT loop for better performance
-
-Bug fixes:
- * fixed an optimizer bug that was causing core dumps when
-   functions calls were used in comparisons in the WHERE clause
- * changed all uses of getuid to geteuid so that effective uids are used
- * psql now returns non-zero status on errors when using -c
- * applied public patches 1-14
-
-
-
-
-
-
-Release 1.0
-
-   
-   Release date
-   1995-09-05
-   
-
-
-Changes
-
-
-
-Copyright change:
- * The copyright of Postgres 1.0 has been loosened to be freely modifiable
-   and modifiable for any purpose.  Please read the COPYRIGHT file.
-   Thanks to Professor Michael Stonebraker for making this possible.
-
-Incompatibilities:
- *  date formats have to be MM-DD-YYYY (or DD-MM-YYYY if you're using
-   EUROPEAN STYLE).  This follows SQL-92 specs.
- *  "delimiters" is now a key word
-
-Enhancements:
- *  sql LIKE syntax has been added
- *  copy command now takes an optional USING DELIMITER specification.
-   delimiters can be any single-character string.
- *  IRIX 5.3 port has been added.
-   Thanks to Paul Walmsley and others.
- *  updated pg_dump to work with new libpq
- *  \d has been added psql
-   Thanks to Keith Parks
- *  regexp performance for architectures that use POSIX regex has been
-   improved due to caching of precompiled patterns.
-   Thanks to Alistair Crooks
- *  a new version of libpq++
-   Thanks to William Wanders
-
-Bug fixes:
- *  arbitrary userids can be specified in the createuser script
- *  \c to connect to other databases in psql now works.
- *  bad pg_proc entry for float4inc() is fixed
- *  users with usecreatedb field set can now create databases without
-   having to be usesuper
- *  remove access control entries when the entry no longer has any
-   privileges
- *  fixed non-portable datetimes implementation
- *  added kerberos flags to the src/backend/Makefile
- *  libpq now works with kerberos
- *  typographic errors in the user manual have been corrected.
- *  btrees with multiple index never worked, now we tell you they don't
-   work when you try to use them
-
-
-
-
-
-
-<productname>Postgres95</productname> Release 0.03
-
-   
-   Release date
-   1995-07-21
-   
-
-
-Changes
-
-
-Incompatible changes:
- * BETA-0.3 IS INCOMPATIBLE WITH DATABASES CREATED WITH PREVIOUS VERSIONS
-   (due to system catalog changes and indexing structure changes).
- * double-quote (") is deprecated as a quoting character for string literals;
-   you need to convert them to single quotes ('). 
- * name of aggregates (eg. int4sum) are renamed in accordance with the
-   SQL standard (eg. sum).
- * CHANGE ACL syntax is replaced by GRANT/REVOKE syntax.
- * float literals (eg. 3.14) are now of type float4 (instead of float8 in
-   previous releases); you might have to do typecasting if you depend on it
-   being of type float8.  If you neglect to do the typecasting and you assign
-   a float literal to a field of type float8, you might get incorrect values
-   stored!
- * LIBPQ has been totally revamped so that frontend applications
-   can connect to multiple backends
- * the usesysid field in pg_user has been changed from int2 to int4 to
-   allow wider range of Unix user ids.
- * the netbsd/freebsd/bsd o/s ports have been consolidated into a
-   single BSD44_derived port.  (thanks to Alistair Crooks)
-
-SQL standard-compliance (the following details changes that makes postgres95
-more compliant to the SQL-92 standard):
- * the following SQL types are now built-in: smallint, int(eger), float, real,
-   char(N), varchar(N), date and time.
-
-   The following are aliases to existing postgres types:
-                smallint -> int2
-                integer, int -> int4
-                float, real  -> float4
-   char(N) and varchar(N) are implemented as truncated text types. In
-   addition, char(N) does blank-padding.
- * single-quote (') is used for quoting string literals; '' (in addition to
-   \') is supported as means of inserting a single quote in a string
- * SQL standard aggregate names (MAX, MIN, AVG, SUM, COUNT) are used
-   (Also, aggregates can now be overloaded, i.e. you can define your
-   own MAX aggregate to take in a user-defined type.)
- * CHANGE ACL removed. GRANT/REVOKE syntax added.
-   - Privileges can be given to a group using the "GROUP" key word.
-        For example:
-                GRANT SELECT ON foobar TO GROUP my_group;
-        The key word 'PUBLIC' is also supported to mean all users.
-
-        Privileges can only be granted or revoked to one user or group
-        at a time.
+  To add a new major-release series, add an entry here and in filelist.sgml.
+  Follow the naming convention, or you'll confuse generate_history.pl.
 
-        "WITH GRANT OPTION" is not supported.  Only class owners can change
-        access control
-   - The default access control is to grant users readonly access.
-     You must explicitly grant insert/update access to users.  To change
-     this, modify the line in
-                src/backend/utils/acl.h
-     that defines ACL_WORLD_DEFAULT
-
-Bug fixes:
- * the bug where aggregates of empty tables were not run has been fixed. Now,
-   aggregates run on empty tables will return the initial conditions of the
-   aggregates. Thus, COUNT of an empty  table will now properly return 0.
-   MAX/MIN of an empty table will return a row of value NULL.
- * allow the use of \; inside the monitor
- * the LISTEN/NOTIFY asynchronous notification mechanism now work
- * NOTIFY in rule action bodies now work
- * hash indexes work, and access methods in general should perform better.
-   creation of large btree indexes should be much faster.  (thanks to Paul
-   Aoki)
-
-Other changes and enhancements:
- * addition of an EXPLAIN statement used for explaining the query execution
-   plan (eg. "EXPLAIN SELECT * FROM EMP" prints out the execution plan for
-   the query).
- * WARN and NOTICE messages no longer have timestamps on them. To turn on
-   timestamps of error messages, uncomment the line in
-   src/backend/utils/elog.h:
-        /* define ELOG_TIMESTAMPS */
- * On an access control violation, the message
-        "Either no such class or insufficient privilege"
-   will be given.  This is the same message that is returned when
-   a class is not found.  This dissuades non-privileged users from
-   guessing the existence of privileged classes.
- * some additional system catalog changes have been made that are not
-   visible to the user.
-
-libpgtcl changes:
- * The -oid option has been added to the "pg_result" tcl command.
-   pg_result -oid returns oid of the last row inserted.   If the
-   last command was not an INSERT, then pg_result -oid returns "".
- * the large object interface is available as pg_lo* tcl commands:
-   pg_lo_open, pg_lo_close, pg_lo_creat, etc.
-
-Portability enhancements and New Ports:
- * flex/lex problems have been cleared up.  Now, you should be able to use
-   flex instead of lex on any platforms.  We no longer make assumptions of
-   what lexer you use based on the platform you use.
- * The Linux-ELF port is now supported.  Various configuration have been
-   tested:  The following configuration is known to work:
-        kernel 1.2.10, gcc 2.6.3, libc 4.7.2, flex 2.5.2, bison 1.24
-   with everything in ELF format,
-
-New utilities:
- * ipcclean added to the distribution
-   ipcclean usually does not need to be run, but if your backend crashes
-   and leaves shared memory segments hanging around, ipcclean will
-   clean them up for you.
-
-New documentation:
- * the user manual has been revised and libpq documentation added.
-
-
-
-
-
-
-<productname>Postgres95</productname> Release 0.02
-
-   
-   Release date
-   1995-05-25
-   
-
-
-Changes
-
-
-
-Incompatible changes:
- * The SQL statement for creating a database is 'CREATE DATABASE' instead
-   of 'CREATEDB'. Similarly, dropping a database is 'DROP DATABASE' instead
-   of 'DESTROYDB'. However, the names of the executables 'createdb' and
-   'destroydb' remain the same.
-
-New tools:
- * pgperl - a Perl (4.036) interface to Postgres95
- * pg_dump - a utility for dumping out a postgres database into a
-        script file containing query commands. The script files are in a ASCII
-        format and can be used to reconstruct the database, even on other
-        machines and other architectures. (Also good for converting
-        a Postgres 4.2 database to Postgres95 database.)
-
-The following ports have been incorporated into postgres95-beta-0.02:
- * the NetBSD port by Alistair Crooks
- * the AIX port by Mike Tung
- * the Windows NT port by Jon Forrest (more stuff but not done yet)
- * the Linux ELF port by Brian Gallew
-
-The following bugs have been fixed in postgres95-beta-0.02:
- * new lines not escaped in COPY OUT and problem with COPY OUT when first
-   attribute is a '.'
- * cannot type return to use the default user id in createuser
- * SELECT DISTINCT on big tables crashes
- * Linux installation problems
- * monitor doesn't allow use of 'localhost' as PGHOST
- * psql core dumps when doing \c or \l
- * the "pgtclsh" target missing from src/bin/pgtclsh/Makefile
- * libpgtcl has a hard-wired default port number
- * SELECT DISTINCT INTO TABLE hangs
- * CREATE TYPE doesn't accept 'variable' as the internallength
- * wrong result using more than 1 aggregate in a SELECT
-
-
-
-
-
-
-<productname>Postgres95</productname> Release 0.01
-
-   
-   Release date
-   1995-05-01
-   
-
-
-Initial release.
-
-
-
-
-  
-   Timing Results
-
-   
-    These timing results are from running the regression test with the commands
-
-    
-% cd src/test/regress
-% make all
-% time make runtest
-    
-   
-   
-    Timing under Linux 2.0.27 seems to have a roughly 5% variation from run
-    to run, presumably due to the scheduling vagaries of multitasking systems.
-   
-
-   
-    Version 6.5
-
-    
-     As has been the case for previous releases, timing between
-     releases is not directly comparable since new regression tests
-     have been added. In general, 6.5 is faster than previous
-     releases.
-    
-
-    
-     Timing with fsync() disabled:
-
-     
-  Time   System
-  02:00  Dual Pentium Pro 180, 224MB, UW-SCSI, Linux 2.0.36, gcc 2.7.2.3 -O2 -m486
-  04:38  Sparc Ultra 1 143MHz, 64MB, Solaris 2.6
-     
-    
-
-    
-     Timing with fsync() enabled:
-
-     
-  Time   System
-  04:21  Dual Pentium Pro 180, 224MB, UW-SCSI, Linux 2.0.36, gcc 2.7.2.3 -O2 -m486
-     
-
-     For the Linux system above, using UW-SCSI disks rather than (older) IDE
-     disks leads to a 50% improvement in speed on the regression test.
-    
-   
-
-
-Version 6.4beta
-
-
-The times for this release are not directly comparable to those for previous releases
-since some additional regression tests have been included.
-In general, however, 6.4 should be slightly faster than the previous release (thanks, Bruce!).
-
-
-
-  Time   System
-  02:26  Dual Pentium Pro 180, 96MB, UW-SCSI, Linux 2.0.30, gcc 2.7.2.1 -O2 -m486
-
-
-
-
-
-Version 6.3
-
-
-The times for this release are not directly comparable to those for previous releases
-since some additional regression tests have been included and some obsolete tests involving
-time travel have been removed.
-In general, however, 6.3 is substantially faster than previous releases (thanks, Bruce!).
-
-
-
-  Time   System
-  02:30  Dual Pentium Pro 180, 96MB, UW-SCSI, Linux 2.0.30, gcc 2.7.2.1 -O2 -m486
-  04:12  Dual Pentium Pro 180, 96MB, EIDE, Linux 2.0.30, gcc 2.7.2.1 -O2 -m486
-
-
-
-
-
-Version 6.1
+  The reason for splitting the release notes this way is so that appropriate
+  subsets can easily be copied into back branches.
+-->
+&release-8.4;
+&release-8.3;
+&release-8.2;
+&release-8.1;
+&release-8.0;
+&release-7.4;
+&release-old;
 
-
-
-  Time   System
-  06:12  Pentium Pro 180, 32MB, EIDE, Linux 2.0.30, gcc 2.7.2 -O2 -m486
-  12:06  P-100, 48MB, Linux 2.0.29, gcc
-  39:58  Sparc IPC 32MB, Solaris 2.5, gcc 2.7.2.1 -O -g
-
-
-
-
-]]>