From 8ac35b32497069dad8f709b8f7884e8c3cfcc61f Mon Sep 17 00:00:00 2001
From: Peter Eisentraut <peter_e@gmx.net>
Date: Mon, 22 May 2000 22:04:47 +0000
Subject: [PATCH] Reformatted the install file as it used to be

---
 INSTALL | 2044 +++++++++++--------------------------------------------
 1 file changed, 408 insertions(+), 1636 deletions(-)

diff --git a/INSTALL b/INSTALL
index 70cbecacc97..0d5fea55a41 100644
--- a/INSTALL
+++ b/INSTALL
@@ -1,1645 +1,417 @@
+     Installation instructions for PostgreSQL 7.0.
+
+If you haven't gotten the PostgreSQL distribution, get it from
+ftp.postgresql.org, then unpack it:
+
+> gunzip postgresql-7.0.tar.gz
+> tar -xf postgresql-7.0.tar
+> mv postgresql-7.0 /usr/src
 
-                    PostgreSQL Installation Guide
-                   The PostgreSQL Development Team
-                                  
-                              Edited by
-                           Thomas Lockhart
-
-PostgreSQL is Copyright © 1996-2000 by PostgreSQL Inc.
-
-Table of Contents
-
-      Summary                                                    
-      1. Introduction                                            
-      2. Ports                                                   
-          Currently Supported Platforms                          
-          Unsupported Platforms                                  
-      3. Installation                                            
-          Before you start                                       
-          Installation Procedure                                 
-      4. Configuration Options                                   
-      5. Release Notes                                           
-          Release 7.0                                            
-             Migration to v7.0                                   
-             Detailed Change List                                
-      6. Regression Test                                         
-
-Summary
-
-
-       Postgres, developed originally in the UC Berkeley Computer 
-      Science Department, pioneered many of the object-relational 
-      concepts now becoming available in some commercial databases. 
-      It provides SQL92/SQL3 language support, transaction integrity, 
-      and type extensibility. PostgreSQL is an open-source descendant 
-      of this original Berkeley code. 
-
-Chapter 1. Introduction
-
-
-       This installation procedure makes some assumptions about the 
-      desired configuration and runtime environment for your system. 
-      This may be adequate for many installations, and is almost 
-      certainly adequate for a first installation. But you may want 
-      to do an initial installation up to the point of unpacking the 
-      source tree and installing documentation, and then print or 
-      browse the Administrator's Guide. 
-
-Chapter 2. Ports
-
-
-       This manual describes version 7.0 of Postgres. The Postgres 
-      developer community has compiled and tested Postgres on a 
-      number of platforms. Check the web site 
-      (http://www.postgresql.org/docs/admin/ports.htm) for the latest 
-      information. 
-
-Currently Supported Platforms
-
-
-       At the time of publication, the following platforms have been 
-      tested: 
-
-      Table 2-1. Supported Platforms
-      OS       Processor Version Reported    Remarks
-      AIX      RS6000    v7.0    2000-04-05  Andreas Zeugswetter 
-      4.3.2                                  (Andreas.Zeugswetter@telecom.at)
-      BSDI     x86       v7.0    2000-04-04  Bruce Momjian 
-      4.01                                   (maillist@candle.pha.pa.us)
-      Compaq   Alpha     v7.0    2000-04-11  Andrew McMurry 
-      Tru64                                  (andrew.mcmurry@astro.uio.no)
-      FreeBSD  x86       v7.0    2000-04-04  Marc Fournier 
-      4.0                                    (scrappy@hub.org)
-      HPUX     PA-RISC   v7.0    2000-04-12  Both 9.0x and 10.20. Tom Lane 
-                                             (tgl@sss.pgh.pa.us)
-      IRIX     MIPS      v6.5.3  2000-02-18  MIPSPro 7.3.1.1m N32 build. Kevin 
-      6.5.6f                                 Wheatley (hxpro@cinesite.co.uk)
-      Linux    Alpha     v7.0    2000-04-05  With published patches.
-      2.0.x                                  Ryan Kirkpatrick 
-                                             (pgsql@rkirkpat.net)
-      Linux    armv4l    v7.0    2000-04-17  Regression test needs work.
-      2.2.x                                  Mark Knox 
-                                             (segfault@hardline.org)
-      Linux    x86       v7.0    2000-03-26  Lamar Owens 
-      2.2.x                                  (lamar.owen@wgcr.org)
-      Linux    MIPS      v7.0    2000-04-13  Cobalt Qube. Tatsuo Ishii 
-      2.0.x                                  (t-ishii@sra.co.jp)
-      Linux    Sparc     v7.0    2000-04-02  Tom Szybist 
-      2.2.5                                  (szybist@boxhill.com)
-      Linux    PPC603e   v7.0    2000-04-13  Tatsuo Ishii 
-      PPC R4                                 (t-ishii@sra.co.jp)
-      mklinux  PPC750    v7.0    2000-04-13  Tatsuo Ishii 
-                                             (t-ishii@sra.co.jp)
-      NetBSD   arm32     v7.0    2000-04-08  Patrick Welche 
-      1.4                                    (prlw1@newn.cam.ac.uk)
-      NetBSD   x86       v7.0    2000-03-26  Patrick Welche 
-      1.4U                                   (prlw1@newn.cam.ac.uk)
-      NetBSD   m68k      v7.0    2000-04-10  Mac 8xx. Henry B. Hotz 
-                                             (hotz@jpl.nasa.gov)
-      NetBSD-  Sparc     v7.0    2000-04-13  Tom I Helbekkmo 
-      /sparc                                 (tih@kpnQwest.no)
-      QNX      x86       v7.0    2000-04-01  Dr. Andreas Kardos 
-      4.25                                   (kardos@repas-aeg.de)
-      SCO Open x86       v6.5    1999-05-25  Andrew Merrill 
-      Server 5                               (andrew@compclass.com)
-      SCO UW7  x86       v7.0    2000-04-18  See FAQ. Billy G. Allie 
-                                             (Bill.Allie@mug.org)
-      Solaris  x86       v7.0    2000-04-12  Marc Fournier 
-                                             (scrappy@hub.org)
-      Solaris  Sparc     v7.0    2000-04-12  Peter Eisentraut 
-      2.5-.7                                 (peter_e@gmx.net)
-      SunOS    Sparc     v7.0    2000-04-13  Tatsuo Ishii 
-      4.1.4                                  (t-ishii@sra.co.jp)
-      Windows  x86       v7.0    2000-04-02  No server-side. Magnus Hagander 
-      Win32                                  (mha@sollentuna.net)
-      WinNT    x86       v7.0    2000-03-30  Uses Cygwin library. Daniel Horak 
-      Cygwin                                 (horak@sit.plzen-city.cz) 
-
-
-       
-
-         Note: For Windows NT, the server-side port of Postgres uses 
-         the RedHat/Cygnus Cygwin library and toolset. For Windows 
-         9x, no server-side port is available due to OS limitations.
-
-Unsupported Platforms
-
-
-       Platforms listed for v6.3.x-v6.5.x should also work with v7.0, 
-      but we did not receive explicit confirmation of such at the 
-      time this list was compiled. We include these here to let you 
-      know that these platforms could be supported if given some 
-      attention. 
-       At the time of publication, the following platforms have not 
-      been tested for v7.0 or v6.5.x: 
-
-      Table 2-2. Unsupported Platforms
-      OS       Processor Version  Reported   Remarks
-      BeOS     x86       v7.0     2000-05-01 Client-side coming soon?
-                                             Adam Haberlach 
-                                             (adam@newsnipple.com)
-      DGUX     m88k      v6.3     1998-03-01 v6.4 probably OK. Needs new 
-      5.4R4.11                               maintainer. Brian E Gallew 
-                                             (geek+@cmu.edu)
-      NetBSD   NS32532   v6.4     1998-10-27 Date/time math annoyances.
-      current                                Jon Buller (jonb@metronet.com)
-      NetBSD   VAX       v6.3     1998-03-01 v7.0 should work. Tom I Helbekkmo 
-      1.3                                    (tih@kpnQwest.no)
-      SVR4 4.4 m88k      v6.2.1   1998-03-01 v6.4.x will need TAS spinlock 
-                                             code. Doug Winterburn 
-                                             (dlw@seavme.xroads.com)
-      SVR4     MIPS      v6.4     1998-10-28 No 64-bit int. Frank Ridderbusch 
-                                             (ridderbusch.pad@sni.de)
-      Ultrix   MIPS, VAX v6.x     1998-03-01 No recent reports; obsolete?
-
-
-       
-       There are a few platforms which have been attempted and which 
-      have been reported to not work with the standard distribution. 
-      Others listed here do not provide sufficient library support 
-      for an attempt. 
-
-      Table 2-3. Incompatible Platforms
-      OS       Processor Version  Reported    Remarks
-      MacOS    all       v6.x     1998-03-01  Not library compatible; use 
-                                              ODBC/JDBC
-      NextStep x86       v6.x     1998-03-01  Client-only support; v1.0.9 
-                                              worked with patches David 
-                                              Wetzel 
-                                              (dave@turbocat.de)
-
-
-       
-Chapter 3. Installation
-
-
-       Installation instructions for PostgreSQL 7.0. 
-
-       If you haven't gotten the PostgreSQL distribution, get it from 
-      ftp.postgresql.org (ftp://ftp.postgresql.org), then unpack it: 
-
-      > gunzip postgresql-7.0.tar.gz
-      > tar -xf postgresql-7.0.tar
-      > mv postgresql-7.0 /usr/src
-         
-
-       
 
 Before you start
 
+Building PostgreSQL requires GNU make. It will not work with other make
+programs. On GNU/Linux systems GNU make is the default tool, on other
+systems you may find that GNU make is installed under the name gmake. We
+will use that name from now on to indicate GNU make, no matter what name it
+has on your system. To test for GNU make enter
+
+> gmake --version
+
+
+If you need to get GNU make, you can find it at ftp://ftp.gnu.org.
+
+Up to date information on supported platforms is at
+http://www.postgresql.org/docs/admin/ports.htm. In general, most
+Unix-compatible platforms with modern libraries should be able to run
+PostgreSQL. In the doc subdirectory of the distribution are several
+platform-specific FAQ and README documents you might wish to consult if you
+are having trouble.
+
+Although the minimum required memory for running PostgreSQL can be as little
+as 8MB, there are noticeable speed improvements when expanding memory up to
+96MB or beyond. The rule is you can never have too much memory.
+
+Check that you have sufficient disk space. You will need about 30 Mbytes for
+the source tree during compilation and about 5 Mbytes for the installation
+directory. An empty database takes about 1 Mbyte, otherwise they take about
+five times the amount of space that a flat text file with the same data
+would take. If you run the regression tests you will temporarily need an
+extra 20MB.
+
+To check for disk space, use
+
+> df -k
+
+Considering today's prices for hard disks, getting a large and fast hard
+disk should probably be in your plans before putting a database into
+production use.
 
-       Building PostgreSQL requires GNU make. It will not work with 
-      other make programs. On GNU/Linux systems GNU make is the 
-      default tool, on other systems you may find that GNU make is 
-      installed under the name gmake. We will use that name from now 
-      on to indicate GNU make, no matter what name it has on your 
-      system. To test for GNU make enter 
-
-      > gmake --version
-          
-
-       If you need to get GNU make, you can find it at 
-      ftp://ftp.gnu.org. 
-       Up to date information on supported platforms is at 
-      http://www.postgresql.org/docs/admin/ports.htm 
-      (http://www.postgresql.org/docs/admin/ports.htm). In general, 
-      most Unix-compatible platforms with modern libraries should be 
-      able to run PostgreSQL. In the doc subdirectory of the 
-      distribution are several platform-specific FAQ and README 
-      documents you might wish to consult if you are having trouble. 
-       Although the minimum required memory for running PostgreSQL 
-      can be as little as 8MB, there are noticeable speed 
-      improvements when expanding memory up to 96MB or beyond. The 
-      rule is you can never have too much memory. 
-       Check that you have sufficient disk space. You will need about 
-      30 Mbytes for the source tree during compilation and about 5 
-      Mbytes for the installation directory. An empty database takes 
-      about 1 Mbyte, otherwise they take about five times the amount 
-      of space that a flat text file with the same data would take. 
-      If you run the regression tests you will temporarily need an 
-      extra 20MB. 
-       To check for disk space, use 
-
-      > df -k
-
-       
-       Considering today's prices for hard disks, getting a large and 
-      fast hard disk should probably be in your plans before putting 
-      a database into production use. 
 
 Installation Procedure
 
+PostgreSQL Installation
+
+For a fresh install or upgrading from previous releases of PostgreSQL:
+
+  1. Create the PostgreSQL superuser account. This is the user the server
+     will run as. For production use you should create a separate,
+     unprivileged account (postgres is commonly used). If you do not have
+     root access or just want to play around, your own user account is
+     enough.
+
+     Running PostgreSQL as root, bin, or any other account with special
+     access rights is a security risk; don't do it. The postmaster will in
+     fact refuse to start as root.
+
+     You need not do the building and installation itself under this account
+     (although you can). You will be told when you need to login as the
+     database superuser.
+
+  2. Configure the source code for your system. It is this step at which you
+     can specify your actual installation path for the build process and
+     make choices about what gets installed. Change into the src
+     subdirectory and type:
+
+     > ./configure
+
+
+     followed by any options you might want to give it. For a first
+     installation you should be able to do fine without any. For a complete
+     list of options, type:
+
+     > ./configure --help
+
+
+     Some of the more commonly used ones are:
+
+     --prefix=BASEDIR
+
+          Selects a different base directory for the installation of
+          PostgreSQL. The default is /usr/local/pgsql.
+
+     --enable-locale
+
+          If you want to use locales.
+
+     --enable-multibyte
+
+          Allows the use of multibyte character encodings. This is primarily
+          for languages like Japanese, Korean, or Chinese.
+
+     --with-perl
+
+          Builds the Perl interface and plperl extension language. Please
+          note that the Perl interface needs to be installed into the usual
+          place for Perl modules (typically under /usr/lib/perl), so you
+          must have root access to perform the installation step. (It is
+          often easiest to leave out --with-perl initially, and then build
+          and install the Perl interface after completing the installation
+          of PostgreSQL itself.)
+
+     --with-odbc
+
+          Builds the ODBC driver package.
+
+     --with-tcl
+
+          Builds interface libraries and programs requiring Tcl/Tk,
+          including libpgtcl, pgtclsh, and pgtksh.
+
+  3. Compile the program. Type
+
+     > gmake
+
+
+     The compilation process can take anywhere from 10 minutes to an hour.
+     Your mileage will most certainly vary. Remember to use GNU make.
+
+     The last line displayed will hopefully be
+
+     All of PostgreSQL is successfully made. Ready to install.
+
+
+  4. If you want to test the newly built server before you install it, you
+     can run the regression tests at this point. The regression tests are a
+     test suite to verify that PostgreSQL runs on your machine in the way
+     the developers expected it to. For detailed instructions see Regression
+     Test. (Be sure to use the "parallel regress test" method, since the
+     sequential method only works with an already-installed server.)
+
+  5. If you are not upgrading an existing system then skip to step 7.
+
+     You now need to back up your existing database. To dump your fairly
+     recent post-6.0 database installation, type
+
+     > pg_dumpall > db.out
+
+
+     If you wish to preserve object id's (oids), then use the -o option when
+     running pg_dumpall. However, unless you have a special reason for doing
+     this (such as using OIDs as keys in tables), don't do it.
+
+     Make sure to use the pg_dumpall command from the version you are
+     currently running. 7.0's pg_dumpall will not work on older databases.
+     However, if you are still using 6.0, do not use the pg_dumpall script
+     from 6.0 or everything will be owned by the PostgreSQL superuser after
+     you reload. In that case you should grab pg_dumpall from a later 6.x.x
+     release. If you are upgrading from a version prior to Postgres95 v1.09
+     then you must back up your database, install Postgres95 v1.09, restore
+     your database, then back it up again.
+
+                                        Caution
+      You must make sure that your database is not updated in the middle of your
+      backup. If necessary, bring down postmaster, edit the permissions in file
+      /usr/local/pgsql/data/pg_hba.conf to allow only you on, then bring
+      postmaster back up.
+  6. If you are upgrading an existing system then kill the database server
+     now. Type
+
+     > ps ax | grep postmaster
+
+
+     or
+
+     > ps -e | grep postmaster
+
+
+     (It depends on your system which one of these two works. No harm can be
+     done by typing the wrong one.) This should list the process numbers for
+     a number of processes, similar to this:
+
+       263  ?  SW   0:00 (postmaster)
+       777  p1 S    0:00 grep postmaster
+
+
+     Type the following line, with pid replaced by the process id for
+     process postmaster (263 in the above case). (Do not use the id for the
+     process "grep postmaster".)
+
+     > kill pid
+
+
+          Tip: On systems which have PostgreSQL started at boot time,
+          there is probably a startup file that will accomplish the
+          same thing. For example, on a Redhat Linux system one might
+          find that
+
+          > /etc/rc.d/init.d/postgres.init stop
+
+
+          works.
+
+     Also move the old directories out of the way. Type the following:
+
+     > mv /usr/local/pgsql /usr/local/pgsql.old
+
+
+     (substitute your particular paths).
+
+  7. Install the PostgreSQL executable files and libraries. Type
+
+     > gmake install
+
+
+     You should do this step as the user that you want the installed
+     executables to be owned by. This does not have to be the same as the
+     database superuser; some people prefer to have the installed files be
+     owned by root.
+
+  8. If necessary, tell your system how to find the new shared libraries.
+     How to do this varies between platforms. The most widely usable method
+     is to set the environment variable LD_LIBRARY_PATH:
+
+     > LD_LIBRARY_PATH=/usr/local/pgsql/lib
+     > export LD_LIBRARY_PATH
+
+
+     on sh, ksh, bash, zsh or
+
+     > setenv LD_LIBRARY_PATH /usr/local/pgsql/lib
+
+
+     on csh or tcsh. You might want to put this into a shell startup file
+     such as /etc/profile.
+
+     On some systems the following is the preferred method, but you must
+     have root access. Edit file /etc/ld.so.conf to add a line
+
+     /usr/local/pgsql/lib
+
+
+     Then run command /sbin/ldconfig.
+
+     If in doubt, refer to the manual pages of your system. If you later on
+     get a message like
+
+     psql: error in loading shared libraries
+     libpq.so.2.1: cannot open shared object file: No such file or directory
+
+
+     then the above was necessary. Simply do this step then.
+
+  9. Create the database installation (the working data files). To do this
+     you must log in to your PostgreSQL superuser account. It will not work
+     as root.
+
+     > mkdir /usr/local/pgsql/data
+     > chown postgres /usr/local/pgsql/data
+     > su - postgres
+     > /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
+
+
+     The -D option specifies the location where the data will be stored. You
+     can use any path you want, it does not have to be under the
+     installation directory. Just make sure that the superuser account can
+     write to the directory (or create it, if it doesn't already exist)
+     before starting initdb. (If you have already been doing the
+     installation up to now as the PostgreSQL superuser, you may have to log
+     in as root temporarily to create the data directory underneath a
+     root-owned directory.)
+
+ 10. The previous step should have told you how to start up the database
+     server. Do so now. The command should look something like
+
+     > /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data
+
+
+     This will start the server in the foreground. To make it detach to the
+     background, you can use the -S option, but then you won't see any log
+     messages the server produces. A better way to put the server in the
+     background is
+
+     > nohup /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data \
+         </dev/null >>server.log 2>>1 &
+
+
+ 11. If you are upgrading from an existing installation, dump your data back
+     in:
+
+     > /usr/local/pgsql/bin/psql -d template1 -f db.out
+
+
+     You also might want to copy over the old pg_hba.conf file and any other
+     files you might have had set up for authentication, such as password
+     files.
+
+This concludes the installation proper. To make your life more productive
+and enjoyable you should look at the following optional steps and
+suggestions.
+
+   * Life will be more convenient if you set up some environment variables.
+     First of all you probably want to include /usr/local/pgsql/bin (or
+     equivalent) into your PATH. To do this, add the following to your shell
+     startup file, such as ~/.bash_profile (or /etc/profile, if you want it
+     to affect every user):
+
+     > PATH=$PATH:/usr/local/pgsql/bin
+
+
+     Furthermore, if you set PGDATA in the environment of the PostgreSQL
+     superuser, you can omit the -D for postmaster and initdb.
+
+   * You probably want to install the man and HTML documentation. Type
+
+     > cd /usr/src/pgsql/postgresql-7.0/doc
+     > gmake install
+
+
+     This will install files under /usr/local/pgsql/doc and
+     /usr/local/pgsql/man. To enable your system to find the man
+     documentation, you need to add a line like the following to a shell
+     startup file:
+
+     > MANPATH=$MANPATH:/usr/local/pgsql/man
+
+
+     The documentation is also available in Postscript format. If you have a
+     Postscript printer, or have your machine already set up to accept
+     Postscript files using a print filter, then to print the User's Guide
+     simply type
+
+     > cd /usr/local/pgsql/doc
+     > gunzip -c user.ps.tz | lpr
+
+
+     Here is how you might do it if you have Ghostscript on your system and
+     are writing to a laserjet printer.
+
+     > gunzip -c user.ps.gz \
+         | gs -sDEVICE=laserjet -r300 -q -dNOPAUSE -sOutputFile=- \
+         | lpr
+
+
+     Printer setups can vary wildly from system to system. If in doubt,
+     consult your manuals or your local expert.
+
+     The Adminstrator's Guide should probably be your first reading if you
+     are completely new to PostgreSQL, as it contains information about how
+     to set up database users and authentication.
+
+   * Usually, you will want to modify your computer so that it will
+     automatically start the database server whenever it boots. This is not
+     required; the PostgreSQL server can be run successfully from
+     non-privileged accounts without root intervention.
+
+     Different systems have different conventions for starting up daemons at
+     boot time, so you are advised to familiarize yourself with them. Most
+     systems have a file /etc/rc.local or /etc/rc.d/rc.local which is almost
+     certainly no bad place to put such a command. Whatever you do,
+     postmaster must be run by the PostgreSQL superuser (postgres) and not
+     by root or any other user. Therefore you probably always want to form
+     your command lines along the lines of su -c '...' postgres.
+
+     It might be advisable to keep a log of the server output. To start the
+     server that way try:
+
+     > nohup su -c 'postmaster -D /usr/local/pgsql/data > server.log 2>&1' postgres &
+
+
+     Here are a few more operating system specific suggestions.
+
+        o Edit file rc.local on NetBSD or file rc2.d on SPARC Solaris 2.5.1
+          to contain the following single line:
+
+          > su postgres -c "/usr/local/pgsql/bin/postmaster -S -D /usr/local/pgsql/data"
+
+
+        o In FreeBSD 2.2-RELEASE edit /usr/local/etc/rc.d/pgsql.sh to
+          contain the following lines and make it chmod 755 and chown
+          root:bin.
+
+          #!/bin/sh
+          [ -x /usr/local/pgsql/bin/postmaster ] && {
+              su -l pgsql -c 'exec /usr/local/pgsql/bin/postmaster
+                  -D/usr/local/pgsql/data
+                  -S -o -F > /usr/local/pgsql/errlog' &
+              echo -n ' pgsql'
+          }
+
+
+          You may put the line breaks as shown above. The shell is smart
+          enough to keep parsing beyond end-of-line if there is an
+          expression unfinished. The exec saves one layer of shell under the
+          postmaster process so the parent is init.
+
+        o In RedHat Linux add a file /etc/rc.d/init.d/postgres.init which is
+          based on the example in contrib/linux/. Then make a softlink to
+          this file from /etc/rc.d/rc5.d/S98postgres.init.
+
+   * Run the regression tests against the installed server (using the
+     sequential test method). If you didn't run the tests before
+     installation, you should definitely do it now. For detailed
+     instructions see Regression Test.
+
+To start experimenting with Postgres, set up the paths as explained above
+and start the server. To create a database, type
+
+> createdb testdb
+
+
+Then enter
+
+> psql testdb
+
 
-      PostgreSQL Installation
-       For a fresh install or upgrading from previous releases of 
-      PostgreSQL: 
-      1.  Create the PostgreSQL superuser account. This is the user 
-         the server will run as. For production use you should create 
-         a separate, unprivileged account (postgres is commonly 
-         used). If you do not have root access or just want to play 
-         around, your own user account is enough. 
-          Running PostgreSQL as root, bin, or any other account with 
-         special access rights is a security risk; don't do it. The 
-         postmaster will in fact refuse to start as root. 
-          You need not do the building and installation itself under 
-         this account (although you can). You will be told when you 
-         need to login as the database superuser. 
-      2.  Configure the source code for your system. It is this step 
-         at which you can specify your actual installation path for 
-         the build process and make choices about what gets 
-         installed. Change into the src subdirectory and type: 
-         > ./configure
-               
-          followed by any options you might want to give it. For a 
-         first installation you should be able to do fine without 
-         any. For a complete list of options, type: 
-         > ./configure --help
-               
-          Some of the more commonly used ones are: 
-
-         --prefix=BASEDIR
-            Selects a different base directory for the installation 
-           of PostgreSQL. The default is /usr/local/pgsql. 
-
-         --enable-locale
-            If you want to use locales. 
-
-         --enable-multibyte
-            Allows the use of multibyte character encodings. This is 
-           primarily for languages like Japanese, Korean, or Chinese. 
-
-         --with-perl
-            Builds the Perl interface and plperl extension language. 
-           Please note that the Perl interface needs to be installed 
-           into the usual place for Perl modules (typically under 
-           /usr/lib/perl), so you must have root access to perform 
-           the installation step. (It is often easiest to leave out 
-           --with-perl initially, and then build and install the Perl 
-           interface after completing the installation of PostgreSQL 
-           itself.) 
-
-         --with-odbc
-            Builds the ODBC driver package. 
-
-         --with-tcl
-            Builds interface libraries and programs requiring Tcl/Tk, 
-           including libpgtcl, pgtclsh, and pgtksh. 
-          
-      3.  Compile the program. Type 
-         > gmake
-               
-          The compilation process can take anywhere from 10 minutes 
-         to an hour. Your mileage will most certainly vary. Remember 
-         to use GNU make. 
-          The last line displayed will hopefully be 
-         All of PostgreSQL is successfully made. Ready to install.
-               
-          
-      4.  If you want to test the newly built server before you 
-         install it, you can run the regression tests at this point. 
-         The regression tests are a test suite to verify that 
-         PostgreSQL runs on your machine in the way the developers 
-         expected it to. For detailed instructions see Regression 
-         Test. (Be sure to use the "parallel regress test" method, 
-         since the sequential method only works with an 
-         already-installed server.) 
-      5.  If you are not upgrading an existing system then skip to 
-         step 7. 
-          You now need to back up your existing database. To dump 
-         your fairly recent post-6.0 database installation, type 
-         > pg_dumpall > db.out
-               
-          If you wish to preserve object id's (oids), then use the -o 
-         option when running pg_dumpall. However, unless you have a 
-         special reason for doing this (such as using OIDs as keys in 
-         tables), don't do it. 
-          Make sure to use the pg_dumpall command from the version 
-         you are currently running. 7.0's pg_dumpall will not work on 
-         older databases. However, if you are still using 6.0, do not 
-         use the pg_dumpall script from 6.0 or everything will be 
-         owned by the PostgreSQL superuser after you reload. In that 
-         case you should grab pg_dumpall from a later 6.x.x release. 
-         If you are upgrading from a version prior to Postgres95 
-         v1.09 then you must back up your database, install 
-         Postgres95 v1.09, restore your database, then back it up 
-         again. 
-
-                                     Caution
-
-              You must make sure that your database is not updated 
-             in the middle of your backup. If necessary, bring down 
-             postmaster, edit the permissions in file 
-             /usr/local/pgsql/data/pg_hba.conf to allow only you on, 
-             then bring postmaster back up. 
-
-
-
-      6.  If you are upgrading an existing system then kill the 
-         database server now. Type 
-         > ps ax | grep postmaster
-               
-          or 
-         > ps -e | grep postmaster
-               
-          (It depends on your system which one of these two works. No 
-         harm can be done by typing the wrong one.) This should list 
-         the process numbers for a number of processes, similar to 
-         this: 
-           263  ?  SW   0:00 (postmaster)
-           777  p1 S    0:00 grep postmaster
-               
-          Type the following line, with pid replaced by the process 
-         id for process postmaster (263 in the above case). (Do not 
-         use the id for the process "grep postmaster".) 
-         > kill pid
-               
-          
-
-           Tip: On systems which have PostgreSQL started at boot 
-           time, there is probably a startup file that will 
-           accomplish the same thing. For example, on a Redhat Linux 
-           system one might find that 
-           > /etc/rc.d/init.d/postgres.init stop
-                  
-            works.
-
-          Also move the old directories out of the way. Type the 
-         following: 
-         > mv /usr/local/pgsql /usr/local/pgsql.old
-               
-          (substitute your particular paths). 
-      7.  Install the PostgreSQL executable files and libraries. Type 
-         > gmake install
-               
-          
-          You should do this step as the user that you want the 
-         installed executables to be owned by. This does not have to 
-         be the same as the database superuser; some people prefer to 
-         have the installed files be owned by root. 
-      8.  If necessary, tell your system how to find the new shared 
-         libraries. How to do this varies between platforms. The most 
-         widely usable method is to set the environment variable 
-         LD_LIBRARY_PATH: 
-         > LD_LIBRARY_PATH=/usr/local/pgsql/lib
-         > export LD_LIBRARY_PATH
-               
-          on sh, ksh, bash, zsh or 
-         > setenv LD_LIBRARY_PATH /usr/local/pgsql/lib
-               
-          on csh or tcsh. You might want to put this into a shell 
-         startup file such as /etc/profile. 
-          On some systems the following is the preferred method, but 
-         you must have root access. Edit file /etc/ld.so.conf to add 
-         a line 
-         /usr/local/pgsql/lib
-               
-          Then run command /sbin/ldconfig. 
-          If in doubt, refer to the manual pages of your system. If 
-         you later on get a message like 
-         psql: error in loading shared libraries
-         libpq.so.2.1: cannot open shared object file: No such file 
-         or directory
-               
-          then the above was necessary. Simply do this step then. 
-      9.  Create the database installation (the working data files). 
-         To do this you must log in to your PostgreSQL superuser 
-         account. It will not work as root. 
-         > mkdir /usr/local/pgsql/data
-         > chown postgres /usr/local/pgsql/data
-         > su - postgres
-         > /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
-               
-          
-          The -D option specifies the location where the data will be 
-         stored. You can use any path you want, it does not have to 
-         be under the installation directory. Just make sure that the 
-         superuser account can write to the directory (or create it, 
-         if it doesn't already exist) before starting initdb. (If you 
-         have already been doing the installation up to now as the 
-         PostgreSQL superuser, you may have to log in as root 
-         temporarily to create the data directory underneath a 
-         root-owned directory.) 
-      10.      The previous step should have told you how to start up 
-         the database server. Do so now. The command should look 
-         something like 
-         > /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data
-               
-          This will start the server in the foreground. To make it 
-         detach to the background, you can use the -S option, but 
-         then you won't see any log messages the server produces. A 
-         better way to put the server in the background is 
-         > nohup /usr/local/pgsql/bin/postmaster -D 
-         /usr/local/pgsql/data \
-             </dev/null >>server.log 2>>1 &
-               
-          
-      11.      If you are upgrading from an existing installation, 
-         dump your data back in: 
-         > /usr/local/pgsql/bin/psql -d template1 -f db.out
-               
-          You also might want to copy over the old pg_hba.conf file 
-         and any other files you might have had set up for 
-         authentication, such as password files. 
-
-       This concludes the installation proper. To make your life more 
-      productive and enjoyable you should look at the following 
-      optional steps and suggestions. 
-      o   Life will be more convenient if you set up some environment 
-        variables. First of all you probably want to include 
-        /usr/local/pgsql/bin (or equivalent) into your PATH. To do 
-        this, add the following to your shell startup file, such as 
-        ~/.bash_profile (or /etc/profile, if you want it to affect 
-        every user): 
-        > PATH=$PATH:/usr/local/pgsql/bin
-              
-         
-         Furthermore, if you set PGDATA in the environment of the 
-        PostgreSQL superuser, you can omit the -D for postmaster and 
-        initdb. 
-      o   You probably want to install the man and HTML documentation. 
-        Type 
-        > cd /usr/src/pgsql/postgresql-7.0/doc
-        > gmake install
-              
-         This will install files under /usr/local/pgsql/doc and 
-        /usr/local/pgsql/man. To enable your system to find the man 
-        documentation, you need to add a line like the following to a 
-        shell startup file: 
-        > MANPATH=$MANPATH:/usr/local/pgsql/man
-              
-         
-         The documentation is also available in Postscript format. If 
-        you have a Postscript printer, or have your machine already 
-        set up to accept Postscript files using a print filter, then 
-        to print the User's Guide simply type 
-        > cd /usr/local/pgsql/doc
-        > gunzip -c user.ps.tz | lpr
-              
-         Here is how you might do it if you have Ghostscript on your 
-        system and are writing to a laserjet printer. 
-        > gunzip -c user.ps.gz \
-            | gs -sDEVICE=laserjet -r300 -q -dNOPAUSE -sOutputFile=- 
-        \
-            | lpr
-              
-         Printer setups can vary wildly from system to system. If in 
-        doubt, consult your manuals or your local expert. 
-         The Adminstrator's Guide should probably be your first 
-        reading if you are completely new to PostgreSQL, as it 
-        contains information about how to set up database users and 
-        authentication. 
-      o   Usually, you will want to modify your computer so that it 
-        will automatically start the database server whenever it 
-        boots. This is not required; the PostgreSQL server can be run 
-        successfully from non-privileged accounts without root 
-        intervention. 
-         Different systems have different conventions for starting up 
-        daemons at boot time, so you are advised to familiarize 
-        yourself with them. Most systems have a file /etc/rc.local or 
-        /etc/rc.d/rc.local which is almost certainly no bad place to 
-        put such a command. Whatever you do, postmaster must be run 
-        by the PostgreSQL superuser (postgres) and not by root or any 
-        other user. Therefore you probably always want to form your 
-        command lines along the lines of su -c '...' postgres. 
-         It might be advisable to keep a log of the server output. To 
-        start the server that way try: 
-        > nohup su -c 'postmaster -D /usr/local/pgsql/data > 
-        server.log 2>&1' postgres &
-              
-         
-         Here are a few more operating system specific suggestions. 
-        o  Edit file rc.local on NetBSD or file rc2.d on SPARC Solaris 
-         2.5.1 to contain the following single line: 
-         > su postgres -c "/usr/local/pgsql/bin/postmaster -S -D 
-         /usr/local/pgsql/data"
-                  
-          
-        o  In FreeBSD 2.2-RELEASE edit /usr/local/etc/rc.d/pgsql.sh to 
-         contain the following lines and make it chmod 755 and chown 
-         root:bin. 
-         #!/bin/sh
-         [ -x /usr/local/pgsql/bin/postmaster ] && {
-             su -l pgsql -c 'exec /usr/local/pgsql/bin/postmaster
-                 -D/usr/local/pgsql/data
-                 -S -o -F > /usr/local/pgsql/errlog' &
-             echo -n ' pgsql'
-         }
-                  
-          You may put the line breaks as shown above. The shell is 
-         smart enough to keep parsing beyond end-of-line if there is 
-         an expression unfinished. The exec saves one layer of shell 
-         under the postmaster process so the parent is init. 
-        o  In RedHat Linux add a file /etc/rc.d/init.d/postgres.init 
-         which is based on the example in contrib/linux/. Then make a 
-         softlink to this file from /etc/rc.d/rc5.d/S98postgres.init. 
-         
-      o   Run the regression tests against the installed server (using 
-        the sequential test method). If you didn't run the tests 
-        before installation, you should definitely do it now. For 
-        detailed instructions see Regression Test. 
-       To start experimenting with Postgres, set up the paths as 
-      explained above and start the server. To create a database, 
-      type 
-
-      > createdb testdb
-          
-
-       Then enter 
-
-      > psql testdb
-          
-
-       to connect to that database. At the prompt you can enter SQL 
-      commands and start experimenting. 
-Chapter 4. Configuration Options
-
-
-Parameters for Configuration (configure)
-
-
-       The full set of parameters available in configure can be 
-      obtained by typing 
-
-      $ ./configure --help
-          
-
-       
-       The following parameters may be of interest to installers: 
-
-      Directories to install PostgreSQL in:
-        --prefix=PREFIX         install architecture-independent files
-                                [/usr/local/pgsql]
-        --bindir=DIR            user executables in DIR [EPREFIX/bin]
-        --libdir=DIR            object code libraries in DIR 
-      [EPREFIX/lib]
-        --includedir=DIR        C header files in DIR 
-      [PREFIX/include]
-        --mandir=DIR            man documentation in DIR [PREFIX/man]
-      Features and packages:
-        --disable-FEATURE       do not include FEATURE
-        --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-        --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-        --without-PACKAGE       do not use PACKAGE
-      --enable and --with options recognized:
-        --with-template=template
-                                use operating system template file
-                                    see template directory
-        --with-includes=dirs    look for header files for tcl/tk, etc 
-        --with-libraries=dirs   look for additional libraries in DIRS
-        --with-libs=dirs        alternate for --with-libraries
-        --enable-locale         enable locale support
-        --enable-recode         enable cyrillic recode support
-        --enable-multibyte      enable multibyte character support
-        --with-pgport=portnum   change default postmaster port
-        --with-maxbackends=n    set default maximum number of processes 
-        --with-tcl              build Tcl interfaces and pgtclsh
-        --with-tclconfig=tcldir
-                                tclConfig.sh and tkConfig.sh location
-        --with-perl             build Perl interface and plperl
-        --with-odbc             build ODBC driver package
-        --with-odbcinst=odbcdir
-                                default directory for odbcinst.ini
-        --enable-cassert        enable assertion checks
-        --enable-debug          build with debugging symbols (-g) 
-        --with-CC=compiler
-                                use specific C compiler
-        --with-CXX=compiler
-                                use specific C++ compiler
-        --without-CXX           prevent building C++ code 
-          
-
-       
-       Some systems may have trouble building a specific feature of 
-      Postgres. For example, systems with a damaged C++ compiler may 
-      need to specify --without-CXX to instruct the build procedure 
-      to skip construction of libpq++. 
-       Use the --with-includes and --with-libraries options if you 
-      want to build Postgres using include files or libraries that 
-      are not installed in your system's standard search path. For 
-      example, you might use these to build with an experimental 
-      version of Tcl. If you need to specify more than one 
-      nonstandard directory for include files or libraries, do it 
-      like this: 
-
-      --with-includes="/opt/tcl/include /opt/perl5/include"
-          
-
-       
-
-Parameters for Building (make)
-
-
-       Many installation-related parameters can be set in the 
-      building stage of Postgres installation. 
-       In most cases, these parameters should be placed in a file, 
-      Makefile.custom, intended just for that purpose. The default 
-      distribution does not contain this optional file, so you will 
-      create it using a text editor of your choice. When upgrading 
-      installations, you can simply copy your old Makefile.custom to 
-      the new installation before doing the build. 
-       Alternatively, you can set variables on the make command line: 
-
-      make [ variable=value [...] ]
-          
-
-       
-       A few of the many variables that can be specified are: 
-
-       POSTGRESDIR 
-          Top of the installation tree. 
-
-       BINDIR 
-          Location of applications and utilities. 
-
-       LIBDIR 
-          Location of object libraries, including shared libraries. 
-
-       HEADERDIR 
-          Location of include files. 
-
-       ODBCINST 
-          Location of installation-wide psqlODBC (ODBC) configuration 
-         file. 
-       
-       There are other optional parameters which are not as commonly 
-      used. Many of those listed below are appropriate when doing 
-      Postgres server code development. 
-
-       CFLAGS 
-          Set flags for the C compiler. Should be assigned with "+=" 
-         to retain relevant default parameters. 
-
-       YFLAGS 
-          Set flags for the yacc/bison parser. -v might be used to 
-         help diagnose problems building a new parser. Should be 
-         assigned with "+=" to retain relevant default parameters. 
-
-       USE_TCL 
-          Enable Tcl interface building. 
-
-       HSTYLE 
-          DocBook HTML style sheets for building the documentation 
-         from scratch. Not used unless you are developing new 
-         documentation from the DocBook-compatible SGML source 
-         documents in doc/src/sgml/. 
-
-       PSTYLE 
-          DocBook style sheets for building printed documentation 
-         from scratch. Not used unless you are developing new 
-         documentation from the DocBook-compatible SGML source 
-         documents in doc/src/sgml/. 
-       
-       Here is an example Makefile.custom for a PentiumPro Linux 
-      system: 
-
-      # Makefile.custom
-      # Thomas Lockhart 1999-06-01
-
-      POSTGRESDIR= /opt/postgres/current
-      CFLAGS+= -m486 -O2
-
-      # documentation
-
-      HSTYLE= /home/tgl/SGML/db118.d/docbook/html
-      PSTYLE= /home/tgl/SGML/db118.d/docbook/print
-          
-
-       
-
-Locale Support
-
-
-       
-
-         Note: Written by Oleg Bartunov. See Oleg's web page 
-         (http://www.sai.msu.su/~megera/postgres/) for additional 
-         information on locale and Russian language support.
-
-       While doing a project for a company in Moscow, Russia, I 
-      encountered the problem that postgresql had no support of 
-      national alphabets. After looking for possible workarounds I 
-      decided to develop support of locale myself. I'm not a 
-      C-programer but already had some experience with locale 
-      programming when I work with perl (debugging) and glimpse. 
-      After several days of digging through the Postgres source tree 
-      I made very minor corections to src/backend/utils/adt/varlena.c 
-      and src/backend/main/main.c and got what I needed! I did 
-      support only for LC_CTYPE and LC_COLLATE, but later LC_MONETARY 
-      was added by others. I got many messages from people about this 
-      patch so I decided to send it to developers and (to my 
-      surprise) it was incorporated into the Postgres distribution. 
-       People often complain that locale doesn't work for them. There 
-      are several common mistakes: 
-      o   Didn't properly configure postgresql before compilation. You 
-        must run configure with --enable-locale option to enable 
-        locale support. Didn't setup environment correctly when 
-        starting postmaster. You must define environment variables 
-        LC_CTYPE and LC_COLLATE before running postmaster because 
-        backend gets information about locale from environment. I use 
-        following shell script (runpostgres): 
-               #!/bin/sh
-               
-               export LC_CTYPE=koi8-r
-               export LC_COLLATE=koi8-r
-               postmaster -B 1024 -S -D/usr/local/pgsql/data/ -o 
-        '-Fe'
-              
-         and run it from rc.local as 
-               /bin/su - postgres -c "/home/postgres/runpostgres"
-              
-         
-      o   Broken locale support in OS (for example, locale support in 
-        libc under Linux several times has changed and this caused a 
-        lot of problems). Latest perl has also support of locale and 
-        if locale is broken perl -v will complain something like: 
-               8:17[mira]:~/WWW/postgres>setenv LC_CTYPE not_exist
-               8:18[mira]:~/WWW/postgres>perl -v
-               perl: warning: Setting locale failed.
-               perl: warning: Please check that your locale settings:
-               LC_ALL = (unset),
-                   LC_CTYPE = "not_exist",
-                   LANG = (unset)
-               are supported and installed on your system.
-               perl: warning: Falling back to the standard locale 
-        ("C").
-              
-         
-      o   Wrong location of locale files! Possible locations include: 
-        /usr/lib/locale (Linux, Solaris), /usr/share/locale (Linux), 
-        /usr/lib/nls/loc (DUX 4.0). Check man locale to find the 
-        correct location. Under Linux I did a symbolic link between 
-        /usr/lib/locale and /usr/share/locale to be sure that the 
-        next libc will not break my locale. 
-       
-
-What are the Benefits?
-
-
-       You can use ~* and order by operators for strings contain 
-      characters from national alphabets. Non-english users 
-      definitely need that. If you won't use locale stuff just 
-      undefine the USE_LOCALE variable. 
-
-What are the Drawbacks?
-
-
-       There is one evident drawback of using locale - its speed! So, 
-      use locale only if you really need it. 
-
-Kerberos Authentication
-
-
-       Kerberos is an industry-standard secure authentication system 
-      suitable for distributed computing over a public network. 
-
-Availability
-
-
-       The Kerberos authentication system is not distributed with 
-      Postgres. Versions of Kerberos are typically available as 
-      optional software from operating system vendors. In addition, a 
-      source code distribution may be obtained through MIT Project 
-      Athena (ftp://athena-dist.mit.edu). 
-
-         Note: You may wish to obtain the MIT version even if your 
-         vendor provides a version, since some vendor ports have been 
-         deliberately crippled or rendered non-interoperable with the 
-         MIT version.
-
-       Users located outside the United States of America and Canada 
-      are warned that distribution of the actual encryption code in 
-      Kerberos is restricted by U. S. Government export regulations. 
-       Inquiries regarding your Kerberos should be directed to your 
-      vendor or MIT Project Athena (info-kerberos@athena.mit.edu). 
-      Note that FAQLs (Frequently-Asked Questions Lists) are 
-      periodically posted to the Kerberos mailing list 
-      (mailto:kerberos@athena.mit.edu) (send mail to subscribe 
-      (mailto:kerberos-request@athena.mit.edu)), and USENET news 
-      group (news:comp.protocols.kerberos). 
-
-Installation
-
-
-       Installation of Kerberos itself is covered in detail in the 
-      Kerberos Installation Notes . Make sure that the server key 
-      file (the srvtab or keytab) is somehow readable by the Postgres 
-      account. 
-       Postgres and its clients can be compiled to use either Version 
-      4 or Version 5 of the MIT Kerberos protocols by setting the 
-      KRBVERS variable in the file src/Makefile.global to the 
-      appropriate value. You can also change the location where 
-      Postgres expects to find the associated libraries, header files 
-      and its own server key file. 
-       After compilation is complete, Postgres must be registered as 
-      a Kerberos service. See the Kerberos Operations Notes and 
-      related manual pages for more details on registering services. 
-
-Operation
-
-
-       After initial installation, Postgres should operate in all 
-      ways as a normal Kerberos service. For details on the use of 
-      authentication, see the PostgreSQL User's Guide reference 
-      sections for postmaster and psql. 
-       In the Kerberos Version 5 hooks, the following assumptions are 
-      made about user and service naming: 
-      o   User principal names (anames) are assumed to contain the 
-        actual Unix/Postgres user name in the first component. 
-      o   The Postgres service is assumed to be have two components, 
-        the service name and a hostname, canonicalized as in Version 
-        4 (i.e., with all domain suffixes removed). 
-       
-       
-
-      Table 4-1. Kerberos Parameter Examples
-        Param-     Example 
-       eter 
-        user       frew@S2K.ORG 
-        user       aoki/HOST=miyu.S2K.Berkeley.EDU@S2K.-
-                  ORG 
-        host       postgres_dbms/ucbvax@S2K.ORG 
-
-
-       
-       Support for Version 4 will disappear sometime after the 
-      production release of Version 5 by MIT. 
-
-Chapter 5. Release Notes
-
-
-Release 7.0
-
-
-       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 
-         JOINs for this release. JOIN, NATURAL JOIN, JOIN/USING, 
-         JOIN/ON are available, as are column correlation names. 
-       
-
-Migration to v7.0
-
-
-       A dump/restore using pg_dump is required for those wishing to 
-      migrate data from any previous release of Postgres. For those 
-      upgrading from 6.5.*, you may 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: 
-      o   The date/time types datetime and timespan have been 
-        superceded by the SQL92-defined types timestamp and interval. 
-        Although there has been some effort to ease the transition by 
-        allowing Postgres to recognize the deprecated type names and 
-        translate them to the new type names, this mechanism may not 
-        be completely transparent to your existing application. 
-      o   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 may go up. If you are dealing with large amounts 
-        of data, you may want to check your queries to verify 
-        performance. 
-      o   The JDBC and ODBC interfaces have been upgraded and 
-        extended. 
-      o   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. 
-       
-
-Detailed Change List
-
-
-       
-
-   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 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
-   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 (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 permissions on indexes (Peter E)
-   Fix for spinlock stuck problem on error (Hiroshi)
-   Fix ipcclean on Linux
-   Fix handling of NULL constraint conditions (Tom)
-   Fix memory leak in odbc driver (Nick Gorham)
-   Fix for permission 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 (jens@jens.de))
-   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 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 (mascarim@yahoo))
-   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 permissions 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 startup (Tatsuo)
-   Add postmaster.opts.default file to store startup 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() (Tatsuo)
-   New libpq functions PQsetClientEncoding(), PQclientEncoding() 
-    (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 <zakkr@zf.jcu.cz>)
-   Add SELECT DISTINCT ON (expr [, expr ...]) targetlist ... (Tom)
-   Check to be sure ORDER BY is compatible with DISTINCT (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 keyword (== CURRENT_USER) (Thomas)
-   Implement SQL92 column aliases (aka correlation names) (Thomas)
-   Implement SQL92 join syntax (Thomas)
-   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)
-   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 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 happen (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 for float8 (Thomas)
-   Add exp() and ln() for NUMERIC type (Jan)
-   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 usage 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 multi-byte 
-    encodings (Tom)
-   Fix r-tree index optimizer selectivity (Thomas)
-   Improve optimizer selectivity computations and functions (Tom)
-   Optimize btree searching when 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 when ORDER BY/GROUP BY is required (Tom)
-   Allocate large memory requests in fix-sized chunks for 
-    performance (Tom)
-   Fix vacuum's performance reducing memory 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 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 to help VACUUM speed (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 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)
-   Index creation uses psort, since psort 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 WIN32 compilation of libpq
-   Alpha spinlock fix from Uncle George (gatgul@voicenet.com)
-   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 Win32 (Magnus)
-   Change datetime and timespan into timestamp and interval (Thomas)
-   Fix for plpgsql on BSDI
-   Add SQL_ASCII test case to the regression test (Tatsuo)
-   configure --with-mb now deprecated (Tatsuo)
-   NT fixes
-   NetBSD fixes Johnny C. Lam (lamj@stat.cmu.edu)
-   Fixes for Alpha compiles
-   New multibyte encodings           
-
-Chapter 6. Regression Test
-
-
-       Regression test instructions and analysis. 
-
-       The PostgreSQL regression tests are a comprehensive set of 
-      tests for the SQL implementation embedded in PostgreSQL. They 
-      test standard SQL operations as well as the extended 
-      capabilities of PostgreSQL. 
-       There are two different ways in which the regression tests can 
-      be run: the "sequential" method and the "parallel" method. The 
-      sequential method runs each test script in turn, whereas the 
-      parallel method starts up multiple server processes to run 
-      groups of tests in parallel. Parallel testing gives confidence 
-      that interprocess communication and locking are working 
-      correctly. Another key difference is that the sequential test 
-      procedure uses an already-installed postmaster, whereas the 
-      parallel test procedure tests a system that has been built but 
-      not yet installed. (The parallel test script actually does an 
-      installation into a temporary directory and fires up a private 
-      postmaster therein.) 
-       Some properly installed and fully functional PostgreSQL 
-      installations can "fail" some of these regression tests due to 
-      artifacts of floating point representation and time zone 
-      support. The tests are currently evaluated using a simple diff 
-      comparison against the outputs generated on a reference system, 
-      so the results are sensitive to small system differences. When 
-      a test is reported as "failed", always examine the differences 
-      between expected and actual results; you may well find that the 
-      differences are not significant. 
-       The regression tests were originally developed by Jolly Chen 
-      and Andrew Yu, and were extensively revised/repackaged by Marc 
-      Fournier and Thomas Lockhart. From PostgreSQL v6.1 onward the 
-      regression tests are current for every official release. 
-
-Regression Environment
-
-
-       The regression testing notes below assume the following 
-      (except where noted): 
-      o   Commands are Unix-compatible. See note below. 
-      o   Defaults are used except where noted. 
-      o   User postgres is the Postgres superuser. 
-      o   The source path is /usr/src/pgsql (other paths are 
-        possible). 
-      o   The runtime path is /usr/local/pgsql (other paths are 
-        possible). 
-       
-       Normally, the regression tests should be run as the postgres 
-      user since the 'src/test/regress' directory and sub-directories 
-      are owned by the postgres user. If you run the regression test 
-      as another user the 'src/test/regress' directory tree must be 
-      writeable by that user. 
-       It was formerly necessary to run the postmaster with system 
-      time zone set to PST, but this is no longer required. You can 
-      run the regression tests under your normal postmaster 
-      configuration. The test script will set the PGTZ environment 
-      variable to ensure that timezone-dependent tests produce the 
-      expected results. However, your system must provide library 
-      support for the PST8PDT time zone, or the timezone-dependent 
-      tests will fail. To verify that your machine does have this 
-      support, type the following: 
-
-      setenv TZ PST8PDT
-      date
-          
-
-       
-       The "date" command above should have returned the current 
-      system time in the PST8PDT time zone. If the PST8PDT database 
-      is not available, then your system may have returned the time 
-      in GMT. If the PST8PDT time zone is not available, you can set 
-      the time zone rules explicitly: 
-
-      setenv PGTZ PST8PDT7,M04.01.0,M10.05.03
-          
-
-       
-       The directory layout for the regression test area is: 
-
-      Table 6-1. Directory Layout
-      Directory  Description
-      input       Source files that are converted using make all 
-                 into some of the .sql files in the sql 
-                 subdirectory. 
-      output      Source files that are converted using make all 
-                 into .out files in the expected subdirectory. 
-      sql         .sql files used to perform the regression tests. 
-      expected    .out files that represent what we expect the 
-                 results to look like. 
-      results     .out files that contain what the results actually 
-                 look like. Also used as temporary storage for table 
-                 copy testing. 
-      tmp_check   Temporary installation created by parallel testing 
-                 script. 
-
-
-       
-
-Regression Test Procedure
-
-
-       Commands were tested on RedHat Linux version 4.2 using the 
-      bash shell. Except where noted, they will probably work on most 
-      systems. Commands like ps and tar vary wildly on what options 
-      you should use on each platform. Use common sense before typing 
-      in these commands. 
-
-      Postgres Regression Test
-      1.  Prepare the files needed for the regression test with: 
-                     cd /usr/src/pgsql/src/test/regress
-                     gmake clean
-                     gmake all
-                   
-          You can skip "gmake clean" if this is the first time you 
-         are running the tests. 
-          This step compiles a C program with PostgreSQL extension 
-         functions into a shared library. Localized SQL scripts and 
-         output-comparison files are also created for the tests that 
-         need them. The localization replaces macros in the source 
-         files with absolute pathnames and user names. 
-      2.  If you intend to use the "sequential" test procedure, which 
-         tests an already-installed postmaster, be sure that the 
-         postmaster is running. If it isn't already running, start 
-         the postmaster in an available window by typing 
-                postmaster
-                   
-          or start the postmaster daemon running in the background by 
-         typing 
-               cd
-                     nohup postmaster > regress.log 2>&1 &
-                   
-          The latter is probably preferable, since the regression 
-         test log will be quite lengthy (60K or so, in Postgres 7.0) 
-         and you might want to review it for clues if things go 
-         wrong. 
-
-         Note: Do not run postmaster from the root account.
-
-          
-      3.  Run the regression tests. For a sequential test, type 
-                    cd /usr/src/pgsql/src/test/regress
-                     gmake runtest
-                   
-          For a parallel test, type 
-                cd /usr/src/pgsql/src/test/regress
-                     gmake runcheck
-                   
-          The sequential test just runs the test scripts using your 
-         already-running postmaster. The parallel test will perform a 
-         complete installation of Postgres into a temporary 
-         directory, start a private postmaster therein, and then run 
-         the test scripts. Finally it will kill the private 
-         postmaster (but the temporary directory isn't removed 
-         automatically). 
-      4.  You should get on the screen (and also written to file 
-         ./regress.out) a series of statements stating which tests 
-         passed and which tests failed. Please note that it can be 
-         normal for some of the tests to "fail" due to 
-         platform-specific variations. See the next section for 
-         details on determining whether a "failure" is significant. 
-          Some of the tests, notably "numeric", can take a while, 
-         especially on slower platforms. Have patience. 
-      5.  After running the tests and examining the results, type 
-                  cd /usr/src/pgsql/src/test/regress
-                     gmake clean
-                   
-          to recover the temporary disk space used by the tests. If 
-         you ran a sequential test, also type 
-                   dropdb regression
-                   
-          
-
-Regression Analysis
-
-
-       The actual outputs of the regression tests are in files in the 
-      ./results directory. The test script uses diff to compare each 
-      output file against the reference outputs stored in the 
-      ./expected directory. Any differences are saved for your 
-      inspection in ./regression.diffs. (Or you can run diff 
-      yourself, if you prefer.) 
-       The files might not compare exactly. The test script will 
-      report any difference as a "failure", but the difference might 
-      be due to small cross-system differences in error message 
-      wording, math library behavior, etc. "Failures" of this type do 
-      not indicate a problem with Postgres. 
-       Thus, it is necessary to examine the actual differences for 
-      each "failed" test to determine whether there is really a 
-      problem. The following paragraphs attempt to provide some 
-      guidance in determining whether a difference is significant or 
-      not. 
-
-Error message differences
-
-
-       Some of the regression tests involve intentional invalid input 
-      values. Error messages can come from either the Postgres code 
-      or from the host platform system routines. In the latter case, 
-      the messages may vary between platforms, but should reflect 
-      similar information. These differences in messages will result 
-      in a "failed" regression test which can be validated by 
-      inspection. 
-
-Date and time differences
-
-
-       Most of the date and time results are dependent on timezone 
-      environment. The reference files are generated for timezone 
-      PST8PDT (Berkeley, California) and there will be apparent 
-      failures if the tests are not run with that timezone setting. 
-      The regression test driver sets environment variable PGTZ to 
-      PST8PDT to ensure proper results. 
-       Some of the queries in the "timestamp" test will fail if you 
-      run the test on the day of a daylight-savings time changeover, 
-      or the day before or after one. These queries assume that the 
-      intervals between midnight yesterday, midnight today and 
-      midnight tomorrow are exactly twenty-four hours ... which is 
-      wrong if daylight-savings time went into or out of effect 
-      meanwhile. 
-       There appear to be some systems which do not accept the 
-      recommended syntax for explicitly setting the local time zone 
-      rules; you may need to use a different PGTZ setting on such 
-      machines. 
-       Some systems using older timezone libraries fail to apply 
-      daylight-savings corrections to pre-1970 dates, causing 
-      pre-1970 PDT times to be displayed in PST instead. This will 
-      result in localized differences in the test results. 
-
-Floating point differences
-
-
-       Some of the tests involve computing 64-bit (float8) numbers 
-      from table columns. Differences in results involving 
-      mathematical functions of float8 columns have been observed. 
-      The float8 and geometry tests are particularly prone to small 
-      differences across platforms. Human eyeball comparison is 
-      needed to determine the real significance of these differences 
-      which are usually 10 places to the right of the decimal point. 
-       Some systems signal errors from pow() and exp() differently 
-      from the mechanism expected by the current Postgres code. 
-
-Polygon differences
-
-
-       Several of the tests involve operations on geographic date 
-      about the Oakland/Berkley CA street map. The map data is 
-      expressed as polygons whose vertices are represented as pairs 
-      of float8 numbers (decimal latitude and longitude). Initially, 
-      some tables are created and loaded with geographic data, then 
-      some views are created which join two tables using the polygon 
-      intersection operator (##), then a select is done on the view. 
-      When comparing the results from different platforms, 
-      differences occur in the 2nd or 3rd place to the right of the 
-      decimal point. The SQL statements where these problems occur 
-      are the following: 
-
-          QUERY: SELECT * from street;
-                QUERY: SELECT * from iexit;
-              
-
-       
-
-Random differences
-
-
-       There is at least one case in the "random" test script that is 
-      intended to produce random results. This causes random to fail 
-      the regression test once in a while (perhaps once in every five 
-      to ten trials). Typing 
-
-               diff results/random.out expected/random.out
-              
-
-       should produce only one or a few lines of differences. You 
-      need not worry unless the random test always fails in repeated 
-      attempts. (On the other hand, if the random test is never 
-      reported to fail even in many trials of the regress tests, you 
-      probably should worry.) 
-
-The "expected" files
-
-
-       The ./expected/*.out files were adapted from the original 
-      monolithic expected.input file provided by Jolly Chen et al. 
-      Newer versions of these files generated on various development 
-      machines have been substituted after careful (?) inspection. 
-      Many of the development machines are running a Unix OS variant 
-      (FreeBSD, Linux, etc) on Ix86 hardware. The original 
-      expected.input file was created on a SPARC Solaris 2.4 system 
-      using the postgres5-1.02a5.tar.gz source tree. It was compared 
-      with a file created on an I386 Solaris 2.4 system and the 
-      differences were only in the floating point polygons in the 3rd 
-      digit to the right of the decimal point. The original 
-      sample.regress.out file was from the postgres-1.01 release 
-      constructed by Jolly Chen. It may have been created on a DEC 
-      ALPHA machine as the Makefile.global in the postgres-1.01 
-      release has PORTNAME=alpha. 
-
-Platform-specific comparison files
-
-
-       Since some of the tests inherently produce platform-specific 
-      results, we have provided a way to supply platform-specific 
-      result comparison files. Frequently, the same variation applies 
-      to multiple platforms; rather than supplying a separate 
-      comparison file for every platform, there is a mapping file 
-      that defines which comparison file to use. So, to eliminate 
-      bogus test "failures" for a particular platform, you must 
-      choose or make a variant result file, and then add a line to 
-      the mapping file, which is "resultmap". 
-       Each line in the mapping file is of the form 
-
-                  testname/platformnamepattern=comparisonfilename
-              
-
-       The test name is just the name of the particular regression 
-      test module. The platform name pattern is a pattern in the 
-      style of expr(1) (that is, a regular expression with an 
-      implicit ^ anchor at the start). It is matched against the 
-      platform name as printed by config.guess. The comparison file 
-      name is the name of the substitute result comparison file. 
-       For example: the int2 regress test includes a deliberate entry 
-      of a value that is too large to fit in int2. The specific error 
-      message that is produced is platform-dependent; our reference 
-      platform emits 
-
-          ERROR:  pg_atoi: error reading "100000": Numerical result 
-      out of range
-              
-
-       but a fair number of other Unix platforms emit 
-
-          ERROR:  pg_atoi: error reading "100000": Result too large
-              
-
-       Therefore, we provide a variant comparison file, 
-      int2-too-large.out, that includes this spelling of the error 
-      message. To silence the bogus "failure" message on HPPA 
-      platforms, resultmap includes 
-
-                 int2/hppa=int2-too-large
-              
-
-       which will trigger on any machine for which config.guess's 
-      output begins with 'hppa'. Other lines in resultmap select the 
-      variant comparison file for other platforms where it's 
-      appropriate. 
+to connect to that database. At the prompt you can enter SQL commands and
+start experimenting.
-- 
GitLab