]> granicus.if.org Git - postgresql/blobdiff - INSTALL
Ok. Updated patch attached.
[postgresql] / INSTALL
diff --git a/INSTALL b/INSTALL
index 417eb12e9551967d760312014c29b612b2495c83..1288a9da4a123a643ab71d5a8e558129fd265def 100644 (file)
--- a/INSTALL
+++ b/INSTALL
+                    PostgreSQL Installation Instructions
 
+  ------------------------------------------------------------------------
 
-PostgreSQL Installation Guide
-by The PostgreSQL Development Team
-
-Edited by Thomas Lockhart
-
-PostgreSQL is copyright (C) 1998
-by the Postgres Global Development Group.
-
-Table of Contents
-
-       Summary                                            
-       1. Introduction                                    
-       2. Ports                                           
-          Currently Supported Platforms                   
-          Unsupported Platforms                           
-       3. Installation                                    
-          Requirements to Run Postgres                    
-          Installation Procedure                          
-          Playing with Postgres                           
-          The Next Step                                   
-          Porting Notes                                   
-             Ultrix4.x                                    
-             Linux                                        
-                 Linux ELF                                
-                 Linux a.out                              
-             BSD/OS                                       
-             NeXT                                         
-       4. Configuration Options                           
-          Parameters for Configuration (configure)        
-          Parameters for Building (make)                  
-          Locale Support                                  
-             What are the Benefits?                       
-             What are the Drawbacks?                      
-          Kerberos Authentication                         
-             Availability                                 
-             Installation                                 
-             Operation                                    
-       5. Release Notes                                   
-          Release 6.4                                     
-             Migration to v6.4                            
-             Detailed Change List                         
-
-List of Tables
-
-       2-1. Supported Platforms                          
-       2-2. Possibly Incompatible Platforms              
-       4-1. Kerberos Parameter Examples                  
-
-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 a public-domain, 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 6.4 of Postgres. The 
-       Postgres developer community has compiled and tested 
-       Postgres on a number of platforms. Check the web site 
-       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 4.2.1      RS6000        v6.4     1998-10-27   (Andreas Zeugswetter)
-       BSDI           x86           v6.4     1998-10-25   (Bruce Momjian
-       FreeBSD        x86           v6.4     1998-10-26   (Tatsuo Ishii, Marc 
-       2.2.x-3.x                                          Fournier)
-       DGUX 5.4R4.11  m88k          v6.3     1998-03-01   v6.4 probably OK. Needs 
-                                                          new maintainer. (Brian E 
-                                                          Gallew)
-       Digital Unix   Alpha         v6.4     1998-10-29   Minor patchable problems 
-       4.0                                                (Pedro J. Lobo)
-       HPUX           PA-RISC       v6.4     1998-10-25   Both 9.0x and 10.20 
-                                                          (Tom Lane, Stan Brown)
-       IRIX 6.x       MIPS          v6.3     1998-03-01   5.x is different (Andrew 
-                                                          Martin)
-       linux 2.0.x    Alpha         v6.3.2   1998-04-16   Mostly successful. Needs 
-                                                          work for v6.4. (Ryan 
-                                                          Kirkpatrick)
-       linux 2.0.x    x86           v6.4     1998-10-27   (Thomas Lockhart)
-       linux          x86           v6.4     1998-10-25   (Oliver Elphick, Taral)
-       2.0.x/glibc2
-       linux 2.0.x    Sparc         v6.4     1998-10-25   (Tom Szybist)
-       linuxPPC       PPC603e       v6.4     1998-10-26   Powerbook 2400c (Tatsuo 
-       2.1.24                                             Ishii)
-       mklinux DR3    PPC750        v6.4     1998-09-16   PowerMac 7600 (Tatsuo 
-                                                          Ishii)
-       NetBSD/i386    x86           v6.4     1998-10-25   (Brook Milligan)
-       1.3.2
-       NetBSD-        NS32532       v6.4     1998-10-27   (small problems in 
-       current                                            date/time math 
-                                                          (Jon Buller)
-       NetBSD/sparc   Sparc         v6.4     1998-10-27   (Tom I Helbekkmo)
-       1.3H
-       NetBSD 1.3     VAX           v6.3     1998-03-01   (Tom I Helbekkmo)
-       SCO UnixWare   x86           v6.3     1998-03-01   aka UNIVEL (Billy G. 
-       2.x                                                Allie)
-       SCO UnixWare   x86           v6.4     1998-10-04   (Billy G. Allie)
-       7
-       Solaris        x86           v6.4     1998-10-28   (Marc Fournier)
-       Solaris        Sparc         v6.4     1998-10-28   (Tom Szybist, Frank 
-       2.6-2.7                                            Ridderbusch)
-       SunOS 4.1.4    Sparc         v6.3     1998-03-01   patches submitted (Tatsuo 
-                                                          Ishii)
-       SVR4           MIPS          v6.4     1998-10-28   no 64-bit int support 
-                                                          (Frank Ridderbusch)
-       SVR4 4.4       m88k          v6.2.1   1998-03-01   confirmed with patching 
-                                                          (Doug Winterburn)
-       Windows NT     x86           v6.4     1998-10-08   Mostly working with the 
-                                                          Cygwin library. No DLLs 
-                                                          yet. (Horak Daniel) 
-
-
-       Platforms listed for v6.3.x should also work with 
-       v6.4, but we did not receive confirmation of such at 
-       the time this list was compiled. 
-
-         Note: For Windows NT, the server-side port of 
-         Postgres has recently been accomplished. Check the 
-         Askesis Postgres Home Page for up to date 
-         information. You may also want to look for 
-         possible patches on the Postgres web site.
-
-Unsupported Platforms
-
-       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-2. Possibly Incompatible Platforms
-       OS        Processor  Version  Reported      Remarks
-       MacOS     all        v6.3     1998-03-01    not library compatible; 
-                                                   use ODBC/JDBC
-       NetBSD    arm32      v6.3     1998-03-01    not yet working (Dave 
-                                                   Millen)
-       NetBSD    m68k       v6.3     1998-03-01    Amiga, HP300, Mac; not 
-                                                   yet working (Henry Hotz)
-       NextStep  x86        v6.x     1998-03-01    client-only support; 
-                                                   v1.0.9 worked with 
-                                                   patches (David Wetzel)
-       Ultrix    MIPS,VAX?  v6.x     1998-03-01    no recent reports; 
-                                                   obsolete?
-       Windows   x86        v6.3     1998-03-01    not library compatible; 
-                                                   client side maybe; use 
-                                                   ODBC/JDBC
-
-
-       Note that Windows ports of the frontend are 
-       apparently possible using third-party Posix porting 
-       tools and libraries.
-
-Chapter 3. Installation
-
-       Complete installation instructions for Postgres v6.4.
-       Before installing Postgres, you may wish to visit 
-       www.postgresql.org for up to date information, 
-       patches, etc.
-       These installation instructions assume: 
-       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).
-       Commands were tested on RedHat Linux version 4.2 
-       using the tcsh shell. Except where noted, they will 
-       probably work on most systems. Commands like ps and 
-       tar may vary wildly between platforms on what options 
-       you should use. Use common sense before typing in 
-       these commands.
-       Our Makefiles require GNU make (called ?gmake? in this 
-       document). They will not work with non-GNU make 
-       programs. If you have GNU make installed under the 
-       name ?make? instead of ?gmake?, then you will use the 
-       command make instead. That's OK, but you need to have 
-       the GNU form of make to succeed with an installation.
-
-Requirements to Run Postgres
-
-       Up to date information on supported platforms is at 
-       http://www.postgresql.org/docs/admin/install.htm. In 
-       general, most Unix-compatible platforms with modern 
-       libraries should be able to run Postgres.
-       Although the minimum required memory for running 
-       Postgres is as little as 8MB, there are noticable 
-       improvements in runtimes for the regression tests 
-       when expanding memory up to 96MB on a relatively fast 
-       dual-processor system running X-Windows. The rule is 
-       you can never have too much memory.
-       Check that you have sufficient disk space. You will 
-       need about 30 Mbytes for /usr/src/pgsql, about 5 
-       Mbytes for /usr/local/pgsql (excluding your database) 
-       and 1 Mbyte for an empty database. The database will 
-       temporarily grow to about 20 Mbytes during the 
-       regression tests. You will also need about 3 Mbytes 
-       for the distribution tar file.
-       We therefore recommend that during installation and 
-       testing you have well over 20 Mbytes free under 
-       /usr/local and another 25 Mbytes free on the disk 
-       partition containing your database. Once you delete 
-       the source files, tar file and regression database, 
-       you will need 2 Mbytes for /usr/local/pgsql, 1 Mbyte 
-       for the empty database, plus about five times the 
-       space you would require to store your database data 
-       in a flat file.
-       To check for disk space, use 
-
-       $ df -k
+Short Version
+
+./configure
+gmake
+su
+gmake install
+adduser postgres
+mkdir /usr/local/pgsql/data
+chown postgres /usr/local/pgsql/data
+su - postgres
+/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
+/usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data >logfile 2>&1 &
+/usr/local/pgsql/bin/createdb test
+/usr/local/pgsql/bin/psql test
+
+The long version is the rest of this document.
+
+  ------------------------------------------------------------------------
+
+Requirements
+
+In general, a modern Unix-compatible platform should be able to run
+PostgreSQL. The platforms that had received specific testing at the time of
+release are listed in the Section called Supported Platforms below. In the
+"doc" subdirectory of the distribution there are several platform-specific
+FAQ documents you might wish to consult if you are having trouble.
+
+The following prerequisites exist for building PostgreSQL:
+
+   * GNU make is required; other make programs will *not* work. GNU make is
+     often installed under the name "gmake"; this document will always refer
+     to it by that name. (On some systems GNU make is the default tool with
+     the name "make".) To test for GNU make enter
+
+     gmake --version
+
+     It is recommended to use version 3.76.1 or later.
+
+   * You need an ISO/ANSI C compiler. Recent versions of GCC are
+     recommendable, but PostgreSQL is known to build with a wide variety of
+     compilers from different vendors.
+
+   * gzip is needed to unpack the distribution in the first place. If you
+     are reading this, you probably already got past that hurdle.
+
+   * The GNU Readline library (for comfortable line editing and command
+     history retrieval) will automatically be used if found. You might wish
+     to install it before proceeding, but it is not essential. (On NetBSD,
+     the "libedit" library is readline-compatible and is used if
+     "libreadline" is not found.)
+
+   * GNU Flex and Bison are needed to build from scratch, but they are *not*
+     required when building from a released source package because
+     pre-generated output files are included in released packages. You will
+     need these programs only when building from a CVS tree or if you
+     changed the actual scanner and parser definition files. If you need
+     them, be sure to get Flex 2.5.4 or later and Bison 1.28 or later. Other
+     yacc programs can sometimes be used, but doing so requires extra effort
+     and is not recommended. Other lex programs will definitely not work.
+
+   * To build on Windows NT or Windows 2000 you need the Cygwin and cygipc
+     packages. See the file "doc/FAQ_MSWIN" for details.
+
+If you need to get a GNU package, you can find it at your local GNU mirror
+site (see http://www.gnu.org/order/ftp.html for a list) or at
+ftp://ftp.gnu.org/gnu/.
+
+Also check that you have sufficient disk space. You will need about 30 MB
+for the source tree during compilation and about 10 MB for the installation
+directory. An empty database cluster takes about 20 MB, databases take about
+five times the amount of space that a flat text file with the same data
+would take. If you are going to run the regression tests you will
+temporarily need an extra 20 MB. Use the "df" command to check for disk
+space.
+
+  ------------------------------------------------------------------------
+
+If You Are Upgrading
+
+The internal data storage format changes with new releases of PostgreSQL.
+Therefore, if you are upgrading an existing installation that does not have
+a version number "7.2.x", you must back up and restore your data as shown
+here. These instructions assume that your existing installation is under the
+"/usr/local/pgsql" directory, and that the data area is in
+"/usr/local/pgsql/data". Substitute your paths appropriately.
+
+  1. Make sure that your database is not updated during or after the backup.
+     This does not affect the integrity of the backup, but the changed data
+     would of course not be included. If necessary, edit the permissions in
+     the file "/usr/local/pgsql/data/pg_hba.conf" (or equivalent) to
+     disallow access from everyone except you.
+
+  2. To dump your database installation, type:
+
+     pg_dumpall > outputfile
+
+     If you need to preserve OIDs (such as when using them as foreign keys),
+     then use the "-o" option when running "pg_dumpall".
+
+     "pg_dumpall" does not save large objects. Check the Administrator's
+     Guide if you need to do this.
+
+     Make sure that you use the "pg_dumpall" command from the version you
+     are currently running. 7.2's "pg_dumpall" should not be used on older
+     databases.
+
+  3. If you are installing the new version at the same location as the old
+     one then shut down the old server, at the latest before you install the
+     new files:
+
+     kill -INT `cat /usr/local/pgsql/data/postmaster.pid`
+
+     Versions prior to 7.0 do not have this "postmaster.pid" file. If you
+     are using such a version you must find out the process id of the server
+     yourself, for example by typing "ps ax | grep postmaster", and supply
+     it to the "kill" command.
+
+     On systems that have PostgreSQL started at boot time, there is probably
+     a start-up file that will accomplish the same thing. For example, on a
+     Red Hat Linux system one might find that
+
+     /etc/rc.d/init.d/postgresql stop
+
+     works. Another possibility is "pg_ctl stop".
+
+  4. If you are installing in the same place as the old version then it is
+     also a good idea to move the old installation out of the way, in case
+     you have trouble and need to revert to it. Use a command like this:
+
+     mv /usr/local/pgsql /usr/local/pgsql.old
+
+After you have installed PostgreSQL 7.2, create a new database directory and
+start the new server. Remember that you must execute these commands while
+logged in to the special database user account (which you already have if
+you are upgrading).
+
+/usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data
+/usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data
+
+Finally, restore your data with
+
+/usr/local/pgsql/bin/psql -d template1 -f outputfile
+
+using the *new* psql.
+
+You can also install the new version in parallel with the old one to
+decrease the downtime. These topics are discussed at length in the
+Administrator's Guide, which you are encouraged to read in any case.
+
+  ------------------------------------------------------------------------
 
 Installation Procedure
 
-       Procedure 3.1. Postgres Installation
-
-       For a fresh install or upgrading from previous 
-       releases of Postgres:
-
-       1. Read any last minute information and platform 
-         specific porting notes. There are some platform 
-         specific notes at the end of this file for 
-         Ultrix4.x, Linux, BSD/OS and NeXT. There are other 
-         files in directory /usr/src/pgsql/doc, including 
-         files FAQ-Irix and FAQ-Linux. Also look in 
-         directory ftp://ftp.postgresql.org/pub. If there 
-         is a file called INSTALL in this directory then 
-         this file will contain the latest installation 
-         information.
-         Please note that a "tested" platform in the list 
-         given earlier simply means that someone went to 
-         the effort at some point of making sure that a 
-         Postgres distribution would compile and run on 
-         this platform without modifying the code. Since 
-         the current developers will not have access to all 
-         of these platforms, some of them may not compile 
-         cleanly and pass the regression tests in the 
-         current release due to minor problems. Any such 
-         known problems and their solutions will be posted 
-         in ftp://ftp.postgresql.org/pub/INSTALL.
-
-       2. Create the Postgres superuser account (postgres is 
-         commonly used) if it does not already exist. 
-         The owner of the Postgres files can be any 
-         unprivileged user account. It must not be root, 
-         bin, or any other account with special access 
-         rights, as that would create a security risk.
-
-       3. Log in to the Postgres superuser account. Most of 
-         the remaining steps in the installation will 
-         happen in this account. 
-
-       4. Ftp file 
-         ftp://ftp.postgresql.org/pub/postgresql-v6.4.tar.gz
-         from the Internet. Store it in your home directory.
-
-       5. Some platforms use flex. If your system uses flex 
-         then make sure you have a good version. To check, 
-         type 
-         $ flex --version
-
-         If the flex command is not found then you probably 
-         do not need it. If the version is 2.5.2 or 2.5.4 
-         or greater then you are okay. If it is 2.5.3 or 
-         before 2.5.2 then you will have to upgrade flex. 
-         You may get it at 
-         ftp://prep.ai.mit.edu/pub/gnu/flex-2.5.4.tar.gz.
-         If you need flex and don't have it or have the 
-         wrong version, then you will be told so when you 
-         attempt to compile the program. Feel free to skip 
-         this step if you aren't sure you need it. If you 
-         do need it then you will be told to 
-         install/upgrade flex when you try to compile 
-         Postgres.
-         You may want to do the entire flex installation 
-         from the root account, though that is not 
-         absolutely necessary. Assuming that you want the 
-         installation to place files in the usual default 
-         areas, type the following: 
-         $ su -
-         $ cd /usr/local/src
-         ftp prep.ai.mit.edu
-         ftp> cd /pub/gnu/
-         ftp> binary
-         ftp> get flex-2.5.4.tar.gz
-         ftp> quit
-         $ gunzip -c flex-2.5.4.tar.gz | tar xvf -
-         $ cd flex-2.5.4
-         $ configure --prefix=/usr
-         $ gmake
-         $ gmake check
-         # You must be root when typing the next line:
-         $ gmake install
-         $ cd /usr/local/src
-         $ rm -rf flex-2.5.4
-         This will update files /usr/man/man1/flex.1, 
-         /usr/bin/flex, /usr/lib/libfl.a, 
-         /usr/include/FlexLexer.h and will add a link 
-         /usr/bin/flex++ which points to flex.
-
-       6. If you are not upgrading an existing system then 
-         skip to  step 9. If you are upgrading an existing 
-         system then back up your database. For alpha- and 
-         beta-level releases, the database format is liable 
-         to change, often every few weeks, with no notice 
-         besides a quick comment in the HACKERS mailing 
-         list. Full releases always require a dump/reload 
-         from previous releases. It is therefore a bad idea 
-         to skip this step. 
-
-         Tip: Do not use the pg_dumpall script from v6.0 or 
-            everything will be owned by the Postgres super 
-            user.
-
-         To dump your fairly recent post-v6.0 database 
-         installation, type 
-         $ pg_dumpall -z > db.out
-         To use the latest pg_dumpall script on your 
-         existing older database before upgrading Postgres, 
-         pull the most recent version of pg_dumpall from 
-         the new distribution: 
-         $ cd
-         $ gunzip -c postgresql-v6.4.tar.gz \
-             | tar xvf - src/bin/pg_dump/pg_dumpall
-         $ chmod a+x src/bin/pg_dump/pg_dumpall
-         $ src/bin/pg_dump/pg_dumpall -z > db.out
-         $ rm -rf src
-         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.
-         If the pg_dumpall command seems to take a long 
-         time and you think it might have died, then, from 
-         another terminal, type 
-         $ ls -l db.out
-          several times to see if the size of the file is 
-         growing.
-         Please note that 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. You 
-         should also read the release notes which should 
-         cover any release-specific issues.
-
-                                 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.
-
-
-
-       7. If you are upgrading an existing system then kill 
-         the postmaster. Type 
-         $ ps -ax | grep postmaster
-          This should list the process numbers for a number 
-         of processes. Type the following line, with pid 
-         replaced by the process id for process postmaster. 
-         (Do not use the id for process "grep postmaster".) 
-
-         Type 
-         $ kill pid
-         to actually stop the process. 
-
-         Tip: On systems which have Postgres started at 
-            boot time, there is probably a startup file 
-            which will accomplish the same thing. For 
-            example, on my Linux system I can type 
-            $ /etc/rc.d/init.d/postgres.init stop
-            to halt Postgres.
-
-       8. If you are upgrading an existing system then move 
-         the old directories out of the way. If you are 
-         short of disk space then you may have to back up 
-         and delete the directories instead. If you do 
-         this, save the old database in the 
-         /usr/local/pgsql/data directory tree. At a 
-         minimum, save file 
-         /usr/local/pgsql/data/pg_hba.conf.
-         Type the following: 
-         $ su -
-         $ cd /usr/src
-         $ mv pgsql pgsql_6_0
-         $ cd /usr/local
-         $ mv pgsql pgsql_6_0
-         $ exit
-         If you are not using /usr/local/pgsql/data as your 
-         data directory (check to see if environment 
-         variable PGDATA is set to something else) then you 
-         will also want to move this directory in the same 
-         manner.
-
-       9. Make new source and install directories. The 
-         actual paths can be different for your 
-         installation but you must be consistant throughout 
-         this procedure. 
-
-         Note: There are two places in this installation 
-            procedure where you will have an opportunity to 
-            specify installation locations for programs, 
-            libraries, documentation, and other files. 
-            Usually it is sufficient to specify these at the 
-            make install stage of installation.
-
-         Type 
-         $ su
-         $ cd /usr/src
-         $ mkdir pgsql
-         $ chown postgres:postgres pgsql
-         $ cd /usr/local
-         $ mkdir pgsql
-         $ chown postgres:postgres pgsql
-         $ exit
-       10.     Unzip and untar the new source file. Type 
-         $ cd /usr/src/pgsql
-         $ gunzip -c ~/postgresql-v6.4.tar.gz | tar xvf -
-       11.     Configure the source code for your system. It 
-         is this step at which you can specify your actual 
-         installation path for the build process (see the 
-         --prefix option below). Type 
-         $ cd /usr/src/pgsql/src
-         $ ./configure [ options ]
-            a. Among other chores, the configure script 
-              selects a system-specific "template" file 
-              from the files provided in the template 
-              subdirectory. If it cannot guess which one to 
-              use for your system, it will say so and exit. 
-              In that case you'll need to figure out which 
-              one to use and run configure again, this time 
-              giving the --with-template=TEMPLATE option to 
-              make the right file be chosen. 
-
-               Please Report Problems: If your system is not 
-                 automatically recognized by configure and 
-                 you have to do this, please send email to 
-                 scrappy@hub.org with the output of the 
-                 program ./config.guess. Indicate what the 
-                 template file should be.
-
-            b. Choose configuration options. Check  
-              Configuration Options for details. However, 
-              for a plain-vanilla first installation with 
-              no extra options like multi-byte character 
-              support or locale collation support it may be 
-              adequate to have chosen the installation 
-              areas and to run configure without extra 
-              options specified. The configure script 
-              accepts many additional options that you can 
-              use if you don't like the default 
-              configuration. To see them all, type 
-                   ./configure --help
-               Some of the more commonly used ones are: 
-                     --prefix=BASEDIR   Selects a different base directory
-                                        The default is /usr/local/pgsql.
-                     --with-template=TEMPLATE
-                                        Use template file TEMPLATE - the template
-                                        files are assumed to be in the directory
-                                        src/template, so look there for proper values.
-                     --with-tcl         Build interface libraries and programs requiring
-                                        Tcl/Tk, including libpgtcl, pgtclsh, and pgtksh.
-                     --with-perl        Build the Perl interface library.
-                     --with-odbc        Build the ODBC driver package.
-                     --enable-hba       Enables Host Based Authentication (DEFAULT)
-                     --disable-hba      Disables Host Based Authentication
-                     --enable-locale    Enables USE_LOCALE
-                     --enable-cassert   Enables 
-              ASSERT_CHECKING
-                     --with-CC=compiler
-                                        Use a specific C compiler that the configure
-                                        script cannot find.
-                     --with-CXX=compiler
-                     --without-CXX
-                                        Use a specific C++ compiler that the configure
-                                        script cannot find, or exclude C++ compilation
-                                        altogether.   (This only affects libpq++ at
-                                        present.)
-            c. Here is the configure script used on a Sparc Solaris 2.5 system with /opt/postgres 
-              specified as the installation base directory: 
-              $ ./configure --prefix=/opt/postgres \
-                  --with-template=sparc_solaris-gcc 
-              --with-pgport=5432 \
-                  --enable-hba --disable-locale
-
-               Tip: Of course, you may type these three 
-                 lines all on the same line.
-
-       12.     Install the man and HTML documentation. Type 
-         $ cd /usr/src/pgsql/doc
-         $ gmake install
-         The documentation is also available in Postscript 
-         format. Look for files ending with .ps.gz in the 
-         same directory.
-
-       13.     <removed>
-
-       14.     Compile the program. Type 
-         $ cd /usr/src/pgsql/src
-         $ gmake all >& make.log &
-         $ tail -f make.log
-         The last line displayed will hopefully be 
-         All of PostgreSQL is successfully made. Ready to 
-         install.
-          At this point, or earlier if you wish, type 
-         control-C to get out of tail. (If you have 
-         problems later on you may wish to examine file 
-         make.log for warning and error messages.) 
-
-            Note: You will probably find a number of warning 
-            messages in make.log. Unless you have problems 
-            later on, these messages may be safely ignored.
-
-         If the compiler fails with a message stating that 
-         the flex command cannot be found then install flex 
-         as described earlier. Next, change directory back 
-         to this directory, type 
-         $ make clean
-         then recompile again.
-         Compiler options, such as optimization and 
-         debugging, may be specified on the command line 
-         using the COPT variable. For example, typing 
-         $ gmake COPT="-g" all >& make.log &
-          would invoke your compiler's -g option in all 
-         steps of the build. See src/Makefile.global.in for 
-         further details.
-
-       15.     Install the program. Type 
-         $ cd /usr/src/pgsql/src
-         $ gmake install >& make.install.log &
-         $ tail -f make.install.log
-         The last line displayed will be 
-         gmake[1]: Leaving directory 
-         `/usr/src/pgsql/src/man'
-         At this point, or earlier if you wish, type 
-         control-C to get out of tail.
-
-       16.     If necessary, tell your system how to find 
-         the new shared libraries. You can do one of the 
-         following, preferably the first: 
-            a. As root, edit file /etc/ld.so.conf. Add a 
-              line 
-              /usr/local/pgsql/lib
-              to the file. Then run command /sbin/ldconfig.
-            b. In a bash shell, type 
-                  export 
-              LD_LIBRARY_PATH=/usr/local/pgsql/lib
-            c. In a csh shell, type 
-                  setenv LD_LIBRARY_PATH 
-              /usr/local/pgsql/lib
-         Please note that the above commands may vary 
-         wildly for different operating systems. Check the 
-         platform specific notes, such as those for 
-         Ultrix4.x or and for non-ELF Linux.
-         If, when you create the database, you get the 
-         message 
-         pg_id: can't load library 'libpq.so'
-          then the above step was necessary. Simply do this 
-         step, then try to create the database again.
-
-       17.     If you used the --with-perl option to 
-         configure, check the install log to see whether 
-         the Perl module was actually installed. If you've 
-         followed our advice to make the Postgres files be 
-         owned by an unprivileged userid, then the Perl 
-         module won't have been installed, for lack of 
-         write privileges on the Perl library directories. 
-         You can complete its installation, either now or 
-         later, by becoming the user that does own the Perl 
-         library (often root) (via su) and doing 
-         $ cd /usr/src/pgsql/src/interfaces/perl5
-         $ gmake install
-
-       18.     If it has not already been done, then prepare 
-         account postgres for using Postgres. Any account 
-         that will use Postgres must be similarly prepared. 
-         There are several ways to influence the runtime 
-         environment of the Postgres server. Refer to the 
-         Administrator's Guide for more information. 
-
-            Note: The following instructions are for a 
-            bash/sh shell. Adapt accordingly for other 
-            shells.
-
-            a. Add the following lines to your login 
-              environment: shell, ~/.bash_profile: 
-              PATH=$PATH:/usr/local/pgsql/bin
-              MANPATH=$MANPATH:/usr/local/pgsql/man
-              PGLIB=/usr/local/pgsql/lib
-              PGDATA=/usr/local/pgsql/data
-              export PATH MANPATH PGLIB PGDATA
-            b. Several regression tests could failed if the 
-              user's locale collation scheme is different 
-              from that of standard C locale. 
-              If you configure and compile Postgres with 
-              the --enable-locale option then set locale 
-              environment to C (or unset all LC_* 
-              variables) by putting these additional lines 
-              to your login environment before starting 
-              postmaster: 
-              LC_COLLATE=C
-              LC_CTYPE=C
-              LC_COLLATE=C
-              export LC_COLLATE LC_CTYPE LC_COLLATE
-            c. Make sure that you have defined these 
-              variables before continuing with the 
-              remaining steps. The easiest way to do this 
-              is to type: 
-              $ source ~/.bash_profile
-
-       19.     Create the database installation from your 
-         Postgres superuser account (typically account 
-         postgres). Do not do the following as root! This 
-         would be a major security hole. Type 
-         $ initdb
-
-       20.     Set up permissions to access the database 
-         system. Do this by editing file 
-         /usr/local/pgsql/data/pg_hba.conf. The 
-         instructions are included in the file. (If your 
-         database is not located in the default location, 
-         i.e. if PGDATA is set to point elsewhere, then the 
-         location of this file will change accordingly.) 
-         This file should be made read only again once you 
-         are finished. If you are upgrading from v6.0 or 
-         later you can copy file pg_hba.conf from your old 
-         database on top of the one in your new database, 
-         rather than redoing the file from scratch.
-
-       21.     Briefly test that the backend will start and 
-         run by running it from the command line. 
-            a. Start the postmaster daemon running in the 
-              background by typing 
-              $ cd
-              $ postmaster -i
-            b. Create a database by typing 
-              $ createdb
-            c. Connect to the new database: 
-              $ psql
-            d. And run a sample query: 
-              postgres=> SELECT datetime 'now';
-            e. Exit psql: 
-              postgres=> \q
-            f. Remove the test database (unless you will 
-              want to use it later for other tests): 
-              $ destroydb
-
-       22.     Run postmaster in the background from your 
-         Postgres superuser account (typically account 
-         postgres). Do not run postmaster from the root 
-         account! 
-         Usually, you will want to modify your computer so 
-         that it will automatically start postmaster 
-         whenever it boots. It is not required; the 
-         Postgres server can be run successfully from 
-         non-privileged accounts without root intervention.
-         Here are some suggestions on how to do this, 
-         contributed by various users.
-         Whatever you do, postmaster must be run by the 
-         Postgres superuser (postgres?) and not by root. 
-         This is why all of the examples below start by 
-         switching user (su) to postgres. These commands 
-         also take into account the fact that environment 
-         variables like PATH and PGDATA may not be set 
-         properly. The examples are as follows. Use them 
-         with extreme caution. 
-         o  If you are installing from a non-privileged 
-           account and have no root access, then start the 
-           postmaster and send it to the background: 
-           $ cd
-           $ nohup postmaster > regress.log 2>&1 &
-         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  In RedHat Linux edit file /etc/inittab to add the 
-           following as a single line: 
-           pg:2345:respawn:/bin/su - postgres -c 
-               "/usr/local/pgsql/bin/postmaster -D/usr/local/pgsql/data
-               >> /usr/local/pgsql/server.log 2>&1 </dev/null"
-
-            (The author of this example says this example 
-           will revive the postmaster if it dies, but he 
-           doesn't know if there are other side effects.) 
-
-       23.     Run the regression tests. The file 
-         /usr/src/pgsql/src/test/regress/README has 
-         detailed instructions for running and interpreting 
-         the regression tests. A short version follows 
-         here:
-            a. Type 
-              $ cd /usr/src/pgsql/src/test/regress
-              $ gmake clean
-              $ gmake all runtest
-              You do not need to type gmake clean if this 
-              is the first time you are running the tests.
-              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 tests to "fail" on some 
-              platforms. The script says a test has failed 
-              if there is any difference at all between the 
-              actual output of the test and the expected 
-              output. Thus, tests may "fail" due to minor 
-              differences in wording of error messages, 
-              small differences in floating-point roundoff, 
-              etc, between your system and the regression 
-              test reference platform. "Failures" of this 
-              type do not indicate a problem with Postgres. 
-              The file ./regression.diffs contains the 
-              textual differences between the actual test 
-              output on your machine and the "expected" 
-              output (which is simply what the reference 
-              system produced). You should carefully 
-              examine each difference listed to see whether 
-              it appears to be a significant issue.
-              For example, 
-              o   For a i686/Linux-ELF platform, no tests 
-                failed since this is the v6.4 regression 
-                testing reference platform.
-              o   For the SPARC/Linux-ELF platform, using the 
-                970525 beta version of Postgres v6.2 the 
-                following tests "failed": float8 and 
-                geometry "failed" due to minor precision 
-                differences in floating point numbers. 
-                select_views produces massively different 
-                output, but the differences are due to minor 
-                floating point differences.
-              Even if a test result clearly indicates a 
-              real failure, it may be a localized problem 
-              that will not affect you. An example is that 
-              the int8 test will fail, producing obviously 
-              incorrect output, if your machine and C 
-              compiler do not provide a 64-bit integer data 
-              type (or if they do but configure didn't 
-              discover it). This is not something to worry 
-              about unless you need to store 64-bit 
-              integers.
-              Conclusion? If you do see failures, try to 
-              understand the nature of the differences and 
-              then decide if those differences will affect 
-              your intended use of Postgres. The regression 
-              tests are a helpful tool, but they may 
-              require some study to be useful.
-              After running the regression tests, type 
-              $ destroydb regression
-              $ cd /usr/src/pgsql/src/test/regress
-              $ gmake clean
-               to recover the disk space used for the 
-              tests. (You may want to save the 
-              regression.diffs file in another place before 
-              doing this.)
-
-       24.     If you haven't already done so, this would be 
-         a good time to modify your computer to do regular 
-         maintainence. The following should be done at 
-         regular intervals: 
-
-         Procedure 3.2. Minimal Backup Procedure
-         1.    Run the SQL command VACUUM. This will clean 
-            up your database. 
-         2.    Back up your system. (You should probably 
-            keep the last few backups on hand.) Preferably, 
-            no one else should be using the system at the 
-            time. 
-
-         Ideally, the above tasks should be done by a shell 
-         script that is run nightly or weekly by cron. Look 
-         at the man page for crontab for a starting point 
-         on how to do this. (If you do it, please e-mail us 
-         a copy of your shell script. We would like to set 
-         up our own systems to do this too.)
-
-       25.     If you are upgrading an existing system then 
-         reinstall your old database. Type 
-         $ cd
-         $ psql -e template1 < db.out
-          If your pre-v6.2 database uses either path or 
-         polygon geometric data types, then you will need 
-         to upgrade any columns containing those types. To 
-         do so, type (from within psql) 
-         UPDATE FirstTable SET PathCol = UpgradePath(PathCol);
-         UPDATE SecondTable SET PathCol = UpgradePath(PathCol);
-         ...
-         VACUUM;
-          UpgradePath() checks to see that a path value is 
-         consistant with the old syntax, and will not 
-         update a column which fails that examination. 
-         UpgradePoly() cannot verify that a polygon is in 
-         fact from an old syntax, but RevertPoly() is 
-         provided to reverse the effects of a mis-applied 
-         upgrade.
-
-       26.     If you are a new user, you may wish to play 
-         with Postgres as described below.
-
-       27.     Clean up after yourself. Type 
-         $ rm -rf /usr/src/pgsql_6_0
-         $ rm -rf /usr/local/pgsql_6_0
-         # Also delete old database directory tree if it is 
-         not in
-         #  /usr/local/pgsql_6_0/data
-         $ rm ~/postgresql-v6.2.1.tar.gz
-
-       28.     You will probably want to print out the 
-         documentation. 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 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. 
-         $ alias gshp='gs -sDEVICE=laserjet -r300 -dNOPAUSE'
-         $ export 
-         GS_LIB=/usr/share/ghostscript:/usr/share/ghostscript/fonts
-         $ gunzip user.ps.gz
-         $ gshp -sOUTPUTFILE=user.hp user.ps
-         $ gzip user.ps
-         $ lpr -l -s -r manpage.hp
-
-       29.     The Postgres team wants to keep Postgres 
-         working on all of the supported platforms. We 
-         therefore ask you to let us know if you did or did 
-         not get Postgres to work on you system. Please 
-         send a mail message to pgsql-ports@postgresql.org 
-         telling us the following: 
-         o  The version of Postgres (v6.4, 6.3.2, beta 981014, etc.). 
-         o  Your operating system (i.e. RedHat v5.1 Linux v2.0.34). 
-         o  Your hardware (SPARC, i486, etc.). 
-         o  Did you compile, install and run the regression 
-           tests cleanly? If not, what source code did you 
-           change (i.e. patches you applied, changes you 
-           made, etc.), what tests failed, etc. It is normal 
-           to get many warning when you compile. You do not 
-           need to report these. 
-       30.     Now create, access and manipulate databases 
-         as desired. Write client programs to access the 
-         database server. In other words, enjoy!
-
-Playing with Postgres
-
-       After Postgres is installed, a database system is 
-       created, a postmaster daemon is running, and the 
-       regression tests have passed, you'll want to see 
-       Postgres do something. That's easy. Invoke the 
-       interactive interface to Postgres, psql: 
-
-       % psql template1
-
-       (psql has to open a particular database, but at this 
-       point the only one that exists is the template1 
-       database, which always exists. We will connect to it 
-       only long enough to create another one and switch to 
-       it.)
-       The response from psql is: 
-
-       Welcome to the POSTGRESQL interactive sql monitor:
-         Please read the file COPYRIGHT for copyright terms 
-       of POSTGRESQL
-
-          type \? for help on slash commands
-          type \q to quit
-          type \g or terminate with semicolon to execute 
-       query
-        You are currently connected to the database: 
-       template1
-
-       template1=>
-
-       Create the database foo: 
-
-       template1=> create database foo;
-       CREATEDB
-
-       (Get in the habit of including those SQL semicolons. 
-       Psql won't execute anything until it sees the 
-       semicolon or a "\g" and the semicolon is required to 
-       delimit multiple statements.)
-       Now connect to the new database: 
-
-       template1=> \c foo
-       connecting to new database: foo
-
-       ("slash" commands aren't SQL, so no semicolon. Use \? 
-       to see all the slash commands.)
-       And create a table: 
-
-       foo=> create table bar (i int4, c char(16));
-       CREATE
-
-       Then inspect the new table: 
-
-       foo=> \d bar
-
-       Table    = bar
-       +--------------+--------------+-------+
-       |    Field     |    Type      | Length|
-       +--------------+--------------+-------+
-       | i            | int4         |     4 |
-       | c            | (bp)char     |    16 |
-       +--------------+--------------+-------+
-
-       And so on. You get the idea.
-
-The Next Step
-
-       Questions? Bugs? Feedback? First, read the files in 
-       directory /usr/src/pgsql/doc/. The FAQ in this 
-       directory may be particularly useful.
-       If Postgres failed to compile on your computer then 
-       fill out the form in file 
-       /usr/src/pgsql/doc/bug.template and mail it to the 
-       location indicated at the top of the form.
-       Check on the web site at http://www.postgresql.org 
-       For more information on the various support mailing 
-       lists.
-
-Porting Notes
-
-         Note: Check for any platform-specific FAQs in the 
-         doc/ directory of the source distribution. For 
-         some ports, the notes below may be out of date.
-
-Ultrix4.x
-
-         Note: There have been no recent reports of Ultrix 
-         usage with Postgres.
-
-       You need to install the libdl-1.1 package since 
-       Ultrix 4.x doesn't have a dynamic loader. It's 
-       available in 
-       s2k-ftp.CS.Berkeley.EDU:pub/personal/andrew/libdl-1.-
-       1.tar.Z
-
-Linux
-
-       Linux ELF
-       The regression test reference machine is a 
-       linux-2.0.30/libc-5.3.12/RedHat-4.2 installation 
-       running on a dual processor i686. The linux-elf port 
-       installs cleanly. See the Linux FAQ for more details.
-
-       Linux a.out
-       For non-ELF Linux, the dld library MUST be obtained 
-       and installed on the system. It enables dynamic link 
-       loading capability to the Postgres port. The dld 
-       library can be obtained from the sunsite linux 
-       distributions. The current name is dld-3.2.5. Jalon 
-       Q. Zimmerman
-
-BSD/OS
-
-       For BSD/OS 2.0 and 2.01, you will need to get the GNU 
-       dld library.
-
-NeXT
-
-       The NeXT port for v1.09 was supplied by Tom R. 
-       Hageman. It requires a SysV IPC emulation library and 
-       header files for shared libary and semaphore stuff. 
-       Tom just happens to sell such a product so contact 
-       him for information. He has also indicated that 
-       binary releases of Postgres for NEXTSTEP will be made 
-       available to the general public. Contact Info@RnA.nl 
-       for information.
-       We have no recent reports of successful NeXT 
-       installations (as of v6.2.1). However, the 
-       client-side libraries should work even if the backend 
-       is not supported.
-
-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: 
-
-       Directory and file names:
-         --prefix=PREFIX         install architecture-independent files in PREFIX
-                                 [/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 (same as --enable-FEATURE=no)
-         --enable-FEATURE[=ARG]  include FEATURE [ARG=yes]
-         --with-PACKAGE[=ARG]    use PACKAGE [ARG=yes]
-         --without-PACKAGE       do not use PACKAGE (same as --with-PACKAGE=no)
-       --enable and --with options recognized:
-         --with-template=template
-                                 use operating system template file
-                                     see template directory
-         --with-includes=incdir  site header files for tk/tcl, etc in DIR
-         --with-libs=incdir      also search for libraries in DIR
-         --with-libraries=libdir also search for libraries in DIR
-         --enable-locale         enable locale support
-         --enable-recode         enable cyrillic recode 
-       support
-         --with-mb=encoding    enable multi-byte support
-         --with-pgport=portnum change default startup port
-         --with-tcl              use tcl
-         --with-tclconfig=tcldir tclConfig.sh and tkConfig.sh are in DIR
-         --with-perl             use perl
-         --with-odbc             build ODBC driver package
-         --with-odbcinst=odbcdir change default directory for odbcinst.ini
-         --enable-cassert        enable assertion checks (debugging)
-         --with-CC=compiler      use specific C compiler
-         --with-CXX=compiler     use specific C++ compiler
-         --without-CXX           do not build libpq++
-
-       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 encourage the build procedure to 
-       ignore the libpq++ construction.
-
-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 place 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. 
-
-       make [ variable=value [,...] ]
-
-       A few of the many variables which 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 1998-03-01
-
-       POSTGRESDIR= /opt/postgres/current
-       CFLAGS+= -m486 # -g -O0
-
-       # 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 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 - it's 
-       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. 
-
-         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. Note that FAQLs 
-       (Frequently-Asked Questions Lists) are periodically 
-       posted to the Kerberos mailing list (send mail to 
-       subscribe), and USENET news group.
-
-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.\f
-
-Chapter 5. Release Notes
-
-Release 6.4
-
-       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: 
-       o 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. 
-       o Jan also contributed a second procedural language, 
-        PL/pgSQL, to go with the original PL/pgTCL 
-        procedural language he contributed last release. 
-       o We have optional multiple-byte character set 
-        support from Tatsuo Iishi to complement our 
-        existing locale support. 
-       o Client/server communications has been cleaned up, 
-        with better support for asynchronous messages and 
-        interrupts thanks to Tom Lane. 
-       o The parser will now perform automatic type coersion 
-        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 
-        Postgres. There is a new chapter in the User's 
-        Guide which covers this topic. 
-       o 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. 
-       o Several more SQL92-compatible syntax features have 
-        been added, including INSERT DEFAULT VALUES 
-       o 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 v6.4
-
-       A dump/restore using pg_dump or pg_dumpall is 
-       required for those wishing to migrate data from any 
-       previous release of Postgres.
-
-Detailed Change List
-
-       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)
-       Multi-byte 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 can't 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 multi-bytes
-       feature, see /doc/README.mb(Tatsuo)
-       /contrib/noupdate code to revoke update permission on a column
-       Libpq can now be compiled on win32(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 Indices 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 indices to be considered when checking for valid
-       indices 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 permissions on 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 multi-key(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 startup if no postmaster running(Massimo)
-       Conditional trace package(Massimo)
-       New UNLISTEN command(Massimo)
-       Psql and libpq now compile under win32 using win32.mak(Magnus)
-       Lo_read no longer stores trailing NULL(Bruce)
-       Identifiers are now truncated to 31 characters internally(Bruce)
-       Createuser options now availble 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 keyword, that is no longer used(Thomas)
-       pg_dump -n flag to supress 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)
-       Multi-byte 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 documention(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)
+  1. Configuration
+
+     The first step of the installation procedure is to configure the source
+     tree for your system and choose the options you would like. This is
+     done by running the "configure" script. For a default installation
+     simply enter
+
+     ./configure
+
+     This script will run a number of tests to guess values for various
+     system dependent variables and detect some quirks of your operating
+     system, and finally will create several files in the build tree to
+     record what it found.
+
+     The default configuration will build the server and utilities, as well
+     as all client applications and interfaces that require only a C
+     compiler. All files will be installed under "/usr/local/pgsql" by
+     default.
+
+     You can customize the build and installation process by supplying one
+     or more of the following command line options to "configure":
+
+     --prefix=PREFIX
+
+          Install all files under the directory "PREFIX" instead of
+          "/usr/local/pgsql". The actual files will be installed into
+          various subdirectories; no files will ever be installed directly
+          into the "PREFIX" directory.
+
+          If you have special needs, you can also customize the individual
+          subdirectories with the following options.
+
+     --exec-prefix=EXEC-PREFIX
+
+          You can install architecture-dependent files under a different
+          prefix, "EXEC-PREFIX", than what "PREFIX" was set to. This can be
+          useful to share architecture-independent files between hosts. If
+          you omit this, then "EXEC-PREFIX" is set equal to "PREFIX" and
+          both architecture-dependent and independent files will be
+          installed under the same tree, which is probably what you want.
+
+     --bindir=DIRECTORY
+
+          Specifies the directory for executable programs. The default is
+          "EXEC-PREFIX/bin", which normally means "/usr/local/pgsql/bin".
+
+     --datadir=DIRECTORY
+
+          Sets the directory for read-only data files used by the installed
+          programs. The default is "PREFIX/share". Note that this has
+          nothing to do with where your database files will be placed.
+
+     --sysconfdir=DIRECTORY
+
+          The directory for various configuration files, "PREFIX/etc" by
+          default.
+
+     --libdir=DIRECTORY
+
+          The location to install libraries and dynamically loadable
+          modules. The default is "EXEC-PREFIX/lib".
+
+     --includedir=DIRECTORY
+
+          The directory for installing C and C++ header files. The default
+          is "PREFIX/include".
+
+     --docdir=DIRECTORY
+
+          Documentation files, except "man" pages, will be installed into
+          this directory. The default is "PREFIX/doc".
+
+     --mandir=DIRECTORY
+
+          The man pages that come with PostgreSQL will be installed under
+          this directory, in their respective "manx" subdirectories. The
+          default is "PREFIX/man".
+
+          Note: Care has been taken to make it possible to install
+          PostgreSQL into shared installation locations (such as
+          "/usr/local/include") without interfering with the namespace
+          of the rest of the system. First, the string "/postgresql" is
+          automatically appended to datadir, sysconfdir, and docdir,
+          unless the fully expanded directory name already contains the
+          string "postgres" or "pgsql". For example, if you choose
+          "/usr/local" as prefix, the documentation will be installed
+          in "/usr/local/doc/postgresql", but if the prefix is
+          "/opt/postgres", then it will be in "/opt/postgres/doc".
+          Second, the installation layout of the C and C++ header files
+          has been reorganized in the 7.2 release. The public header
+          files of the client interfaces are installed into includedir
+          and are namespace-clean. The internal header files and the
+          server header files are installed into private directories
+          under includedir. See the Programmer's Guide for information
+          about how to get at the header files for each interface.
+          Finally, a private subdirectory will also be created, if
+          appropriate, under libdir for dynamically loadable modules.
+
+     --with-includes=DIRECTORIES
+
+          "DIRECTORIES" is a colon-separated list of directories that will
+          be added to the list the compiler searches for header files. If
+          you have optional packages (such as GNU Readline) installed in a
+          non-standard location, you have to use this option and probably
+          also the corresponding "--with-libraries" option.
+
+          Example: --with-includes=/opt/gnu/include:/usr/sup/include.
+
+     --with-libraries=DIRECTORIES
+
+          "DIRECTORIES" is a colon-separated list of directories to search
+          for libraries. You will probably have to use this option (and the
+          corresponding "--with-includes" option) if you have packages
+          installed in non-standard locations.
+
+          Example: --with-libraries=/opt/gnu/lib:/usr/sup/lib.
+
+     --enable-locale
+
+          Enables locale support. There is a performance penalty associated
+          with locale support, but if you are not in an English-speaking
+          environment you will most likely need this.
+
+     --enable-recode
+
+          Enables single-byte character set recode support. See the
+          Administrator's Guide about this feature.
+
+     --enable-multibyte
+
+          Allows the use of multibyte character encodings (including
+          Unicode) and character set encoding conversion. Read the
+          Administrator's Guide for details.
+
+          Note that some interfaces (such as Tcl or Java) expect all
+          character strings to be in Unicode, so this option will be
+          required to correctly support these interfaces.
+
+     --enable-nls[=LANGUAGES]
+
+          Enables Native Language Support (NLS), that is, the ability to
+          display a program's messages in a language other than English.
+          "LANGUAGES" is a space separated list of codes of the languages
+          that you want supported, for example --enable-nls='de fr'. (The
+          intersection between your list and the set of actually provided
+          translations will be computed automatically.) If you do not
+          specify a list, then all available translations are installed.
+
+          To use this option, you will need an implementation of the gettext
+          API. Some operating systems have this built-in (e.g., Linux,
+          NetBSD, Solaris), for other systems you can download an add-on
+          package from here: http://www.postgresql.org/~petere/gettext.html.
+          If you are using the gettext implementation in the GNU C library
+          then you will additionally need the GNU gettext package for some
+          utility programs. For any of the other implementations you will
+          not need it.
+
+     --with-pgport=NUMBER
+
+          Set "NUMBER" as the default port number for server and clients.
+          The default is 5432. The port can always be changed later on, but
+          if you specify it here then both server and clients will have the
+          same default compiled in, which can be very convenient. Usually
+          the only good reason to select a non-default value is if you
+          intend to run multiple PostgreSQL servers on the same machine.
+
+     --with-CXX
+
+          Build the C++ interface library.
+
+     --with-perl
+
+          Build the Perl interface module. The Perl interface will be
+          installed at the usual place for Perl modules (typically under
+          "/usr/lib/perl"), so you must have root access to perform the
+          installation step (see step 4). You need to have Perl 5 installed
+          to use this option.
+
+     --with-python
+
+          Build the Python interface module. You need to have root access to
+          be able to install the Python module at its default place
+          ("/usr/lib/pythonx.y"). To be able to use this option, you must
+          have Python installed and your system needs to support shared
+          libraries. If you instead want to build a new complete interpreter
+          binary, you will have to do it manually.
+
+     --with-tcl
+
+          Builds components that require Tcl/Tk, which are libpgtcl,
+          pgtclsh, pgtksh, PgAccess, and PL/Tcl. But see below about
+          "--without-tk".
+
+     --without-tk
+
+          If you specify "--with-tcl" and this option, then programs that
+          require Tk (pgtksh and PgAccess) will be excluded.
+
+     --with-tclconfig=DIRECTORY, --with-tkconfig=DIRECTORY
+
+          Tcl/Tk installs the files "tclConfig.sh" and "tkConfig.sh", which
+          contain configuration information needed to build modules
+          interfacing to Tcl or Tk. These files are normally found
+          automatically at their well-known locations, but if you want to
+          use a different version of Tcl or Tk you can specify the directory
+          in which to find them.
+
+     --enable-odbc
+
+          Build the ODBC driver. By default, the driver will be independent
+          of a driver manager. To work better with a driver manager already
+          installed on your system, use one of the following options in
+          addition to this one. More information can be found in the
+          Programmer's Guide.
+
+     --with-iodbc
+
+          Build the ODBC driver for use with iODBC.
+
+     --with-unixodbc
+
+          Build the ODBC driver for use with unixODBC.
+
+     --with-odbcinst=DIRECTORY
+
+          Specifies the directory where the ODBC driver will expect its
+          "odbcinst.ini" configuration file. The default is
+          "/usr/local/pgsql/etc" or whatever you specified as
+          "--sysconfdir". It should be arranged that the driver reads the
+          same file as the driver manager.
+
+          If either the option "--with-iodbc" or the option
+          "--with-unixodbc" is used, this option will be ignored because in
+          that case the driver manager handles the location of the
+          configuration file.
+
+     --with-java
+
+          Build the JDBC driver and associated Java packages. This option
+          requires Ant to be installed (as well as a JDK, of course). Refer
+          to the JDBC driver documentation in the Programmer's Guide for
+          more information.
+
+     --with-krb4[=DIRECTORY], --with-krb5[=DIRECTORY]
+
+          Build with support for Kerberos authentication. You can use either
+          Kerberos version 4 or 5, but not both. The "DIRECTORY" argument
+          specifies the root directory of the Kerberos installation;
+          "/usr/athena" is assumed as default. If the relevant header files
+          and libraries are not under a common parent directory, then you
+          must use the "--with-includes" and "--with-libraries" options in
+          addition to this option. If, on the other hand, the required files
+          are in a location that is searched by default (e.g., "/usr/lib"),
+          then you can leave off the argument.
+
+          "configure" will check for the required header files and libraries
+          to make sure that your Kerberos installation is sufficient before
+          proceeding.
+
+     --with-krb-srvnam=NAME
+
+          The name of the Kerberos service principal. postgres is the
+          default. There's probably no reason to change this.
+
+     --with-openssl[=DIRECTORY]
+
+          Build with support for SSL (encrypted) connections. This requires
+          the OpenSSL package to be installed. The "DIRECTORY" argument
+          specifies the root directory of the OpenSSL installation; the
+          default is "/usr/local/ssl".
+
+          "configure" will check for the required header files and libraries
+          to make sure that your OpenSSL installation is sufficient before
+          proceeding.
+
+     --with-pam
+
+          Build with PAM (Pluggable Authentication Modules) support.
+
+     --enable-syslog
+
+          Enables the PostgreSQL server to use the syslog logging facility.
+          (Using this option does not mean that you must log with syslog or
+          even that it will be done by default, it simply makes it possible
+          to turn that option on at run time.)
+
+     --enable-debug
+
+          Compiles all programs and libraries with debugging symbols. This
+          means that you can run the programs through a debugger to analyze
+          problems. This enlarges the size of the installed executables
+          considerably, and on non-GCC compilers it usually also disables
+          compiler optimization, causing slowdowns. However, having the
+          symbols available is extremely helpful for dealing with any
+          problems that may arise. Currently, this option is recommended for
+          production installations only if you use GCC. But you should
+          always have it on if you are doing development work or running a
+          beta version.
+
+     --enable-cassert
+
+          Enables assertion checks in the server, which test for many "can't
+          happen" conditions. This is invaluable for code development
+          purposes, but the tests slow things down a little. Also, having
+          the tests turned on won't necessarily enhance the stability of
+          your server! The assertion checks are not categorized for
+          severity, and so what might be a relatively harmless bug will
+          still lead to server restarts if it triggers an assertion failure.
+          Currently, this option is not recommended for production use, but
+          you should have it on for development work or when running a beta
+          version.
+
+     --enable-depend
+
+          Enables automatic dependency tracking. With this option, the
+          makefiles are set up so that all affected object files will be
+          rebuilt when any header file is changed. This is useful if you are
+          doing development work, but is just wasted overhead if you intend
+          only to compile once and install. At present, this option will
+          work only if you use GCC.
+
+     If you prefer a C or C++ compiler different from the one "configure"
+     picks then you can set the environment variables CC or CXX,
+     respectively, to the program of your choice. Similarly, you can
+     override the default compiler flags with the CFLAGS and CXXFLAGS
+     variables. For example:
+
+     env CC=/opt/bin/gcc CFLAGS='-O2 -pipe' ./configure
+
+  2. Build
+
+     To start the build, type
+
+     gmake
+
+     (Remember to use GNU make.) The build may take anywhere from 5 minutes
+     to half an hour depending on your hardware. The last line displayed
+     should be
+
+     All of PostgreSQL is successfully made. Ready to install.
+
+  3. Regression Tests
+
+     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. Type
+
+     gmake check
+
+     (This won't work as root; do it as an unprivileged user.) It is
+     possible that some tests fail, due to differences in error message
+     wording or floating point results. The file "src/test/regress/README"
+     and the Administrator's Guide contain detailed information about
+     interpreting the test results. You can repeat this test at any later
+     time by issuing the same command.
+
+  4. Installing The Files
+
+          Note: If you are upgrading an existing system and are going
+          to install the new files over the old ones, then you should
+          have backed up your data and shut down the old server by now,
+          as explained in the Section called If You Are Upgrading
+          above.
+
+     To install PostgreSQL enter
+
+     gmake install
+
+     This will install files into the directories that were specified in
+     step 1. Make sure that you have appropriate permissions to write into
+     that area. Normally you need to do this step as root. Alternatively,
+     you could create the target directories in advance and arrange for
+     appropriate permissions to be granted.
+
+     If you built the Perl or Python interfaces and you were not the root
+     user when you executed the above command then that part of the
+     installation probably failed. In that case you should become the root
+     user and then do
+
+     gmake -C src/interfaces/perl5 install
+     gmake -C src/interfaces/python install
+
+     If you do not have superuser access you are on your own: you can still
+     take the required files and place them in other directories where Perl
+     or Python can find them, but how to do that is left as an exercise.
+
+     The standard installation provides only the header files needed for
+     client application development. If you plan to do any server-side
+     program development (such as custom functions or data types written in
+     C), then you may want to install the entire PostgreSQL include tree
+     into your target include directory. To do that, enter
+
+     gmake install-all-headers
+
+     This adds a megabyte or two to the installation footprint, and is only
+     useful if you don't plan to keep the whole source tree around for
+     reference. (If you do, you can just use the source's include directory
+     when building server-side software.)
+
+     Client-only installation: If you want to install only the client
+     applications and interface libraries, then you can use these commands:
+
+     gmake -C src/bin install
+     gmake -C src/include install
+     gmake -C src/interfaces install
+     gmake -C doc install
+
+     To undo the installation use the command "gmake uninstall". However,
+     this will not remove any created directories.
+
+After the installation you can make room by removing the built files from
+the source tree with the "gmake clean" command. This will preserve the files
+made by the configure program, so that you can rebuild everything with
+"gmake" later on. To reset the source tree to the state in which it was
+distributed, use "gmake distclean". If you are going to build for several
+platforms from the same source tree you must do this and re-configure for
+each build.
+
+If you perform a build and then discover that your configure options were
+wrong, or if you change anything that configure investigates (for example,
+you install GNU Readline), then it's a good idea to do "gmake distclean"
+before reconfiguring and rebuilding. Without this, your changes in
+configuration choices may not propagate everywhere they need to.
+
+  ------------------------------------------------------------------------
+
+Post-Installation Setup
+
+Shared Libraries
+
+On some systems that have shared libraries (which most systems do) you need
+to tell your system how to find the newly installed shared libraries. The
+systems on which this is *not* necessary include BSD/OS, FreeBSD, HP-UX,
+IRIX, Linux, NetBSD, OpenBSD, Tru64 UNIX (formerly Digital UNIX), and
+Solaris.
+
+The method to set the shared library search path varies between platforms,
+but the most widely usable method is to set the environment variable
+LD_LIBRARY_PATH like so: In Bourne shells ("sh", "ksh", "bash", "zsh")
+
+LD_LIBRARY_PATH=/usr/local/pgsql/lib
+export LD_LIBRARY_PATH
+
+or in "csh" or "tcsh"
+
+setenv LD_LIBRARY_PATH /usr/local/pgsql/lib
+
+Replace /usr/local/pgsql/lib with whatever you set "--libdir" to in step 1.
+You should put these commands into a shell start-up file such as
+"/etc/profile" or "~/.bash_profile". Some good information about the caveats
+associated with this method can be found at
+http://www.visi.com/~barr/ldpath.html.
+
+On some systems it might be preferable to set the environment variable
+LD_RUN_PATH *before* building.
+
+If in doubt, refer to the manual pages of your system (perhaps "ld.so" or
+"rld"). 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 this step was necessary. Simply take care of it then.
+
+If you are on BSD/OS, Linux, or SunOS 4 and you have root access you can run
+
+/sbin/ldconfig /usr/local/pgsql/lib
+
+(or equivalent directory) after installation to enable the run-time linker
+to find the shared libraries faster. Refer to the manual page of "ldconfig"
+for more information. On FreeBSD, NetBSD, and OpenBSD the command is
+
+/sbin/ldconfig -m /usr/local/pgsql/lib
+
+instead. Other systems are not known to have an equivalent command.
+
+  ------------------------------------------------------------------------
+
+Environment Variables
+
+If you installed into "/usr/local/pgsql" or some other location that is not
+searched for programs by default, you need to add "/usr/local/pgsql/bin" (or
+whatever you set "--bindir" to in step 1) into your PATH. To do this, add
+the following to your shell start-up file, such as "~/.bash_profile" (or
+"/etc/profile", if you want it to affect every user):
+
+PATH=/usr/local/pgsql/bin:$PATH
+
+If you are using "csh" or "tcsh", then use this command:
+
+set path = ( /usr/local/pgsql/bin $path )
+
+To enable your system to find the man documentation, you need to add a line
+like the following to a shell start-up file:
+
+MANPATH=/usr/local/pgsql/man:$MANPATH
+
+The environment variables PGHOST and PGPORT specify to client applications
+the host and port of the database server, overriding the compiled-in
+defaults. If you are going to run client applications remotely then it is
+convenient if every user that plans to use the database sets PGHOST. This is
+not required, however: the settings can be communicated via command line
+options to most client programs.
+
+  ------------------------------------------------------------------------
+
+Getting Started
+
+The following is a quick summary of how to get PostgreSQL up and running
+once installed. The Administrator's Guide contains more information.
+
+  1. Create a user account for the PostgreSQL server. 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, but running the server as root is a security risk and will not
+     work.
+
+     adduser postgres
+
+  2. Create a database installation with the "initdb" command. To run
+     "initdb" you must be logged in to your PostgreSQL server account. It
+     will not work as root.
+
+     root# mkdir /usr/local/pgsql/data
+     root# chown postgres /usr/local/pgsql/data
+     root# su - postgres
+     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 server account can
+     write to the directory (or create it, if it doesn't already exist)
+     before starting "initdb", as illustrated here.
+
+  3. 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 put the server in the
+     background use something like
+
+     nohup /usr/local/pgsql/bin/postmaster -D /usr/local/pgsql/data \
+         </dev/null >>server.log 2>&1 </dev/null &
+
+     To stop a server running in the background you can type
+
+     kill `cat /usr/local/pgsql/data/postmaster.pid`
+
+     In order to allow TCP/IP connections (rather than only Unix domain
+     socket ones) you need to pass the "-i" option to "postmaster".
+
+  4. Create a database:
+
+     createdb testdb
+
+     Then enter
+
+     psql testdb
+
+     to connect to that database. At the prompt you can enter SQL commands
+     and start experimenting.
+
+  ------------------------------------------------------------------------
+
+What Now?
+
+   * The PostgreSQL distribution contains a comprehensive documentation set,
+     which you should read sometime. After installation, the documentation
+     can be accessed by pointing your browser to
+     "/usr/local/pgsql/doc/html/index.html", unless you changed the
+     installation directories.
+
+     The Tutorial should be your first reading if you are completely new to
+     SQL databases. If you are familiar with database concepts then you want
+     to proceed with the Administrator's Guide, which contains information
+     about how to set up the database server, database users, and
+     authentication.
+
+   * Usually, you will want to modify your computer so that it will
+     automatically start the database server whenever it boots. Some
+     suggestions for this are in the Administrator's Guide.
+
+   * 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. This is also explained
+     in the Administrator's Guide.
+
+  ------------------------------------------------------------------------
+
+Supported Platforms
+
+PostgreSQL has been verified by the developer community to work on the
+platforms listed below. A supported platform generally means that PostgreSQL
+builds and installs according to these instructions and that the regression
+tests pass.
+
+     Note: If you are having problems with the installation on a
+     supported platform, please write to <pgsql-bugs@postgresql.org> or
+     <pgsql-ports@postgresql.org>, not to the people listed here.
+
+ OS     Processor   Version Reported                         Remarks
+ AIX    RS6000      7.2     2001-12-19, Andreas Zeugswetter  see also
+                            (<ZeugswetterA@spardat.at>),     doc/FAQ_AIX
+                            Tatsuo Ishii
+                            (<t-ishii@sra.co.jp>)
+ BeOS   x86         7.2     2001-11-29, Cyril Velter         5.0.4
+                            (<cyril.velter@libertysurf.fr>)
+ BSD/OS x86         7.2     2001-11-27, Bruce Momjian        4.2
+                            (<pgman@candle.pha.pa.us>)
+ FreeBSDAlpha       7.2     2001-12-18, Chris Kings-Lynne
+                            (<chriskl@familyhealth.com.au>)
+ FreeBSDx86         7.2     2001-11-14, Chris Kings-Lynne
+                            (<chriskl@familyhealth.com.au>)
+ HP-UX  PA-RISC     7.2     2001-11-29, Joseph Conway        11.00 and 10.20;
+                            (<Joseph.Conway@home.com>), Tom  see also
+                            Lane (<tgl@sss.pgh.pa.us>)       doc/FAQ_HPUX
+ IRIX   MIPS        7.2     2001-11-28, Luis Amigo           6.5.13, MIPSPro
+                            (<lamigo@atc.unican.es>)         7.30
+ Linux  Alpha       7.2     2001-11-16, Tom Lane             2.2.18; tested at
+                            (<tgl@sss.pgh.pa.us>)            SourceForge
+ Linux  armv4l      7.2     2001-12-10, Mark Knox            2.2.x
+                            (<segfault@hardline.org>)
+ Linux  MIPS        7.2     2001-11-15, Hisao Shibuya        2.0.x; Cobalt
+                            (<shibuya@alpha.or.jp>)          Qube2
+ Linux  PlayStation 7.2     2001-12-12, Permaine Cheung      #undef
+        2                   <pcheung@redhat.com>)            HAS_TEST_AND_SET,
+                                                             slock_t
+ Linux  PPC74xx     7.2     2001-11-16, Tom Lane             2.2.18; Apple G3
+                            (<tgl@sss.pgh.pa.us>)
+ Linux  S/390       7.2     2001-12-12, Permaine Cheung
+                            <pcheung@redhat.com>)
+ Linux  Sparc       7.2     2001-11-28, Doug McNaught        2.2.19
+                            (<doug@wireboard.com>)
+ Linux  x86         7.2     2001-11-15, Thomas Lockhart      2.0.x, 2.2.x,
+                            (<lockhart@fourpalms.org>)       2.4.x
+ MacOS XPPC         7.2     2001-11-28, Gavin Sherry         10.1.x
+                            (<swm@linuxworld.com.au>)
+ NetBSD Alpha       7.2     2001-11-20, Thomas Thai          1.5W
+                            (<tom@minnesota.com>)
+ NetBSD arm32       7.1     2001-03-21, Patrick Welche       1.5E
+                            (<prlw1@cam.ac.uk>)
+ NetBSD m68k        7.0     2000-04-10, Henry B. Hotz        Mac 8xx
+                            (<hotz@jpl.nasa.gov>)
+ NetBSD PPC         7.2     2001-11-28, Bill Studenmund      1.5
+                            (<wrstuden@netbsd.org>)
+ NetBSD Sparc       7.2     2001-12-03, Matthew Green        32- and 64-bit
+                            (<mrg@eterna.com.au>)            builds
+ NetBSD VAX         7.1     2001-03-30, Tom I. Helbekkmo     1.5
+                            (<tih@kpnQwest.no>)
+ NetBSD x86         7.2     2001-11-28, Bill Studenmund      1.5
+                            (<wrstuden@netbsd.org>)
+ OpenBSDSparc       7.2     2001-11-27, Brandon Palmer       3.0
+                            (<bpalmer@crimelabs.net>)
+ OpenBSDx86         7.2     2001-11-26, Brandon Palmer       3.0
+                            (<bpalmer@crimelabs.net>)
+ Open   x86         7.2     2001-11-28, OU-8 Larry Rosenman  see also
+ UNIX                       (<ler@lerctr.org>), UW-7 Olivier doc/FAQ_SCO
+                            Prenant (<ohp@pyrenet.fr>)
+ QNX 4  x86         7.2     2001-12-10, Bernd Tegge          4.25; see also
+ RTOS                       (<tegge@repas-aeg.de>)           doc/FAQ_QNX4
+ SolarisSparc       7.2     2001-11-12, Andrew Sullivan      2.6-8; see also
+                            (<andrew@libertyrms.com>)        doc/FAQ_Solaris
+ Solarisx86         7.2     2001-11-28, Martin Renters       2.8; see also
+                            (<martin@datafax.com>)           doc/FAQ_Solaris
+ SunOS 4Sparc       7.2     2001-12-04, Tatsuo Ishii
+                            (<t-ishii@sra.co.jp>)
+ Tru64  Alpha       7.2     2001-11-26, Alessio Bragadini    5.0; 4.0g with cc
+ UNIX                       (<alessio@albourne.com>), Bernd  and gcc
+                            Tegge (<tegge@repas-aeg.de>)
+ Windowsx86         7.2     2001-12-13, Dave Page            with Cygwin; see
+                            (<dpage@vale-housing.co.uk>),    doc/FAQ_MSWIN
+                            Jason Tishler
+                            (<jason@tishler.net>)
+ Windowsx86         7.2     2001-12-10, Dave Page            native is
+                            (<dpage@vale-housing.co.uk>)     client-side only;
+                                                             see
+                                                             Administrator's
+                                                             Guide
+
+Unsupported Platforms: The following platforms are either known not to work,
+or they used to work in a previous release and we did not receive explicit
+confirmation of a successful test with version 7.2 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.
+
+ OS         Processor Version Reported                         Remarks
+ DG/UX      m88k      6.3     1998-03-01, Brian E Gallew       no recent
+ 5.4R4.11                     (<geek+@cmu.edu>)                reports
+ MkLinux DR1PPC750    7.0     2001-04-03, Tatsuo Ishii         7.1 needs OS
+                              (<t-ishii@sra.co.jp>)            update?
+ NeXTSTEP   x86       6.x     1998-03-01, David Wetzel         bit rot
+                              (<dave@turbocat.de>)             suspected
+ QNX RTOS v6x86       7.2     2001-11-20, Igor Kovalenko       patches
+                              (<Igor.Kovalenko@motorola.com>)  available in
+                                                               archives,
+                                                               but too late
+                                                               for 7.2
+ SCO        x86       6.5     1999-05-25, Andrew Merrill       7.2 should
+ OpenServer                   (<andrew@compclass.com>)         work, but no
+ 5                                                             reports; see
+                                                               also
+                                                               doc/FAQ_SCO
+ System V R4m88k      6.2.1   1998-03-01, Doug Winterburn      needs new
+                              (<dlw@seavme.xroads.com>)        TAS spinlock
+                                                               code
+ System V R4MIPS      6.4     1998-10-28, Frank Ridderbusch    no recent
+                              (<ridderbusch.pad@sni.de>)       reports
+ Ultrix     MIPS      7.1     2001-03-26                       TAS spinlock
+                                                               code not
+                                                               detected
+ Ultrix     VAX       6.x     1998-03-01