Index: doc/src/sgml/arch-dev.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/arch-dev.sgml,v
retrieving revision 2.16
diff -c -r2.16 arch-dev.sgml
*** doc/src/sgml/arch-dev.sgml	21 Nov 2001 05:53:40 -0000	2.16
--- doc/src/sgml/arch-dev.sgml	17 Jan 2003 18:18:36 -0000
***************
*** 478,485 ****
  
     <para>
      For information on the syntax and creation of rules in the
!     <productname>PostgreSQL</productname> system refer to
!     <citetitle>The PostgreSQL User's Guide</citetitle>.
     </para>
  
     <sect2>
--- 478,485 ----
  
     <para>
      For information on the syntax and creation of rules in the
!     <productname>PostgreSQL</productname> system refer to the
!     &cite-user;.
     </para>
  
     <sect2>
Index: doc/src/sgml/catalogs.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/catalogs.sgml,v
retrieving revision 2.64
diff -c -r2.64 catalogs.sgml
*** doc/src/sgml/catalogs.sgml	17 Dec 2002 17:41:30 -0000	2.64
--- doc/src/sgml/catalogs.sgml	17 Jan 2003 18:16:59 -0000
***************
*** 288,296 ****
  
    <para>
     New aggregate functions are registered with the <command>CREATE
!    AGGREGATE</command> command.  See the <citetitle>Programmer's
!    Guide</citetitle> for more information about writing aggregate
!    functions and the meaning of the transition functions, etc.
    </para>
  
   </sect1>
--- 288,296 ----
  
    <para>
     New aggregate functions are registered with the <command>CREATE
!    AGGREGATE</command> command.  See the &cite-programmer; for more
!    information about writing aggregate functions and the meaning of
!    the transition functions, etc.
    </para>
  
   </sect1>
***************
*** 1446,1453 ****
     The <structname>pg_database</structname> catalog stores information
     about the available databases.  Databases are created with the
     <command>CREATE DATABASE</command> command.  Consult the
!    <citetitle>Administrator's Guide</citetitle> for details about the
!    meaning of some of the parameters.
    </para>
  
    <para>
--- 1446,1453 ----
     The <structname>pg_database</structname> catalog stores information
     about the available databases.  Databases are created with the
     <command>CREATE DATABASE</command> command.  Consult the
!    &cite-admin; for details about the meaning of some of the
!    parameters.
    </para>
  
    <para>
***************
*** 1791,1798 ****
    <para>
     This catalog defines groups and stores what users belong to what
     groups.  Groups are created with the <command>CREATE
!    GROUP</command> command.  Consult the <citetitle>Administrator's
!    Guide</citetitle> for information about user permission management.
    </para>
  
    <para>
--- 1791,1798 ----
    <para>
     This catalog defines groups and stores what users belong to what
     groups.  Groups are created with the <command>CREATE
!    GROUP</command> command.  Consult the &cite-admin; for information
!    about user permission management.
    </para>
  
    <para>
***************
*** 2022,2029 ****
     <structname>pg_language</structname> registers call interfaces or
     languages in which you can write functions or stored procedures.
     See under <command>CREATE LANGUAGE</command> and in the
!    <citetitle>Programmer's Guide</citetitle> for more information
!    about language handlers.
    </para>
  
    <table>
--- 2022,2028 ----
     <structname>pg_language</structname> registers call interfaces or
     languages in which you can write functions or stored procedures.
     See under <command>CREATE LANGUAGE</command> and in the
!    &cite-programmer; for more information about language handlers.
    </para>
  
    <table>
***************
*** 2298,2305 ****
    </para>
  
    <para>
!    Operator classes are described at length in the
!    <citetitle>Programmer's Guide</citetitle>.
    </para>
  
    <table>
--- 2297,2303 ----
    </para>
  
    <para>
!    Operator classes are described at length in the &cite-programmer;.
    </para>
  
    <table>
***************
*** 2387,2395 ****
    <title>pg_operator</title>
  
    <para>
!    See <command>CREATE OPERATOR</command> and the
!    <citetitle>Programmer's Guide</citetitle> for details on these
!    operator parameters.
    </para>
  
    <table>
--- 2385,2392 ----
    <title>pg_operator</title>
  
    <para>
!    See <command>CREATE OPERATOR</command> and the &cite-programmer;
!    for details on these operator parameters.
    </para>
  
    <table>
***************
*** 2559,2566 ****
    <para>
     This catalog stores information about functions (or procedures).
     The description of <command>CREATE FUNCTION</command> and the
!    <citetitle>Programmer's Guide</citetitle> contain more information
!    about the meaning of some fields.
    </para>
  
    <para>
--- 2556,2563 ----
    <para>
     This catalog stores information about functions (or procedures).
     The description of <command>CREATE FUNCTION</command> and the
!    &cite-programmer; contain more information about the meaning of
!    some fields.
    </para>
  
    <para>
***************
*** 2832,2839 ****
    </para>
  
    <para>
!    The <citetitle>Administrator's Guide</citetitle> contains detailed
!    information about user and permission management.
    </para>
  
    <para>
--- 2829,2836 ----
    </para>
  
    <para>
!    The &cite-admin; contains detailed information about user and
!    permission management.
    </para>
  
    <para>
Index: doc/src/sgml/charset.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/charset.sgml,v
retrieving revision 2.30
diff -c -r2.30 charset.sgml
*** doc/src/sgml/charset.sgml	15 Nov 2002 03:11:15 -0000	2.30
--- doc/src/sgml/charset.sgml	17 Jan 2003 18:21:17 -0000
***************
*** 309,316 ****
      <productname>PostgreSQL</> speak their preferred language well.
      If messages in your language is currently not available or fully
      translated, your assistance would be appreciated.  If you want to
!     help, refer to the <citetitle>Developer's Guide</> or write to the
!     developers' mailing list.
     </para>
    </sect2>
   </sect1>
--- 309,316 ----
      <productname>PostgreSQL</> speak their preferred language well.
      If messages in your language is currently not available or fully
      translated, your assistance would be appreciated.  If you want to
!     help, refer to the &cite-developer; or write to the developers'
!     mailing list.
     </para>
    </sect2>
   </sect1>
Index: doc/src/sgml/client-auth.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/client-auth.sgml,v
retrieving revision 1.43
diff -c -r1.43 client-auth.sgml
*** doc/src/sgml/client-auth.sgml	6 Jan 2003 03:18:26 -0000	1.43
--- doc/src/sgml/client-auth.sgml	17 Jan 2003 17:51:03 -0000
***************
*** 110,117 ****
         This record matches connection attempts using TCP/IP networks.
         Note that TCP/IP connections are disabled unless the server is
         started with the <option>-i</option> option or the
!        <literal>tcpip_socket</> <filename>postgresql.conf</>
!        configuration parameter is enabled.
        </para>
       </listitem>
      </varlistentry>
--- 110,116 ----
         This record matches connection attempts using TCP/IP networks.
         Note that TCP/IP connections are disabled unless the server is
         started with the <option>-i</option> option or the
!        <varname>tcpip_socket</> configuration parameter is enabled.
        </para>
       </listitem>
      </varlistentry>
***************
*** 129,137 ****
        <para>
         To be able make use of this option the server must be built
         with SSL support enabled. Furthermore, SSL must be enabled by
!        enabling the option <literal>ssl</literal> in
!        <filename>postgresql.conf</filename> (see <xref
!        linkend="runtime-config">).
        </para>
       </listitem>
      </varlistentry>
--- 128,135 ----
        <para>
         To be able make use of this option the server must be built
         with SSL support enabled. Furthermore, SSL must be enabled by
!        enabling the <varname>ssl</varname> configuration parameter
!        (see <xref linkend="runtime-config"> for more information).
        </para>
       </listitem>
      </varlistentry>
***************
*** 191,198 ****
         must be zero for the record to match.  (Of course IP addresses
         can be spoofed but this consideration is beyond the scope of
         <productname>PostgreSQL</productname>.) If you machine supports
!        IPv6, the default <filename>pg_hba.conf</> will have an IPv6
!        entry for <literal>localhost</>. You can add your own IPv6
         entries to the file. IPv6 entries are used only for IPv6
         connections.
        </para>
--- 189,196 ----
         must be zero for the record to match.  (Of course IP addresses
         can be spoofed but this consideration is beyond the scope of
         <productname>PostgreSQL</productname>.) If you machine supports
!        IPv6, the default <filename>pg_hba.conf</> file will have an
!        IPv6 entry for <literal>localhost</>. You can add your own IPv6
         entries to the file. IPv6 entries are used only for IPv6
         connections.
        </para>
***************
*** 486,502 ****
     </para>
  
     <para>
!     <literal>trust</> authentication is appropriate and very convenient
!     for local connections on a single-user workstation.  It is usually
!     <emphasis>not</> appropriate by itself on a multiuser machine.
!     However, you may be able to use <literal>trust</> even on a multiuser
!     machine, if you restrict access to the postmaster's socket file using
!     file-system permissions.  To do this, set the parameter
      <varname>unix_socket_permissions</varname> (and possibly
!     <varname>unix_socket_group</varname>) in <filename>postgresql.conf</>,
!     as described in <xref linkend="runtime-config-general">.  Or you could
!     set <varname>unix_socket_directory</varname> to place the socket file
!     in a suitably restricted directory.
     </para>
  
     <para>
--- 484,501 ----
     </para>
  
     <para>
!     <literal>trust</> authentication is appropriate and very
!     convenient for local connections on a single-user workstation.  It
!     is usually <emphasis>not</> appropriate by itself on a multiuser
!     machine.  However, you may be able to use <literal>trust</> even
!     on a multiuser machine, if you restrict access to the postmaster's
!     socket file using file-system permissions.  To do this, set the
      <varname>unix_socket_permissions</varname> (and possibly
!     <varname>unix_socket_group</varname>) configuration parameters as
!     described in <xref linkend="runtime-config-general">.  Or you
!     could set the <varname>unix_socket_directory</varname>
!     configuration parameter to place the socket file in a suitably
!     restricted directory.
     </para>
  
     <para>
Index: doc/src/sgml/dfunc.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/dfunc.sgml,v
retrieving revision 1.22
diff -c -r1.22 dfunc.sgml
*** doc/src/sgml/dfunc.sgml	21 Sep 2002 18:32:52 -0000	1.22
--- doc/src/sgml/dfunc.sgml	17 Jan 2003 18:22:11 -0000
***************
*** 318,326 ****
     -bI:.../lib/postgres.exp -bE:foo.exp foo.o \e
     -lm -lc 2>/dev/null
  .fi
! You should look at the <citetitle>PostgreSQL User's Manual</>
! for an explanation of this
! procedure.
  
    -->
  
--- 318,325 ----
     -bI:.../lib/postgres.exp -bE:foo.exp foo.o \e
     -lm -lc 2>/dev/null
  .fi
! You should look at the &cite-user; for an explanation of
! this procedure.
  
    -->
  
Index: doc/src/sgml/ecpg.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ecpg.sgml,v
retrieving revision 1.40
diff -c -r1.40 ecpg.sgml
*** doc/src/sgml/ecpg.sgml	15 Nov 2002 03:11:16 -0000	1.40
--- doc/src/sgml/ecpg.sgml	17 Jan 2003 17:37:24 -0000
***************
*** 879,885 ****
  FETCH <optional><replaceable>direction</></> <optional><replaceable>amount</></> IN|FROM <replaceable>cursor</replaceable>
  </synopsis>
        <indexterm><primary>Oracle</></>
!       <application>Oracle</application>, however, does not use the
        keywords <literal>IN</literal> or <literal>FROM</literal>. This
        feature cannot be added since it would create parsing conflicts.
       </para>
--- 879,885 ----
  FETCH <optional><replaceable>direction</></> <optional><replaceable>amount</></> IN|FROM <replaceable>cursor</replaceable>
  </synopsis>
        <indexterm><primary>Oracle</></>
!       <productname>Oracle</productname>, however, does not use the
        keywords <literal>IN</literal> or <literal>FROM</literal>. This
        feature cannot be added since it would create parsing conflicts.
       </para>
Index: doc/src/sgml/extend.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/extend.sgml,v
retrieving revision 1.18
diff -c -r1.18 extend.sgml
*** doc/src/sgml/extend.sgml	3 Nov 2002 01:31:32 -0000	1.18
--- doc/src/sgml/extend.sgml	17 Jan 2003 18:24:26 -0000
***************
*** 214,221 ****
       </mediaobject>
      </figure>
  
!     The <citetitle>Developer's Guide</citetitle> gives a more detailed  explanation
!     of  these catalogs and their columns.  However,
      <xref linkend="EXTEND-CATALOGS">
      shows the major entities and their  relationships
      in  the system catalogs.  (Columns that do not refer
--- 214,221 ----
       </mediaobject>
      </figure>
  
!     The &cite-developer; gives a more detailed explanation of these
!     catalogs and their columns.  However,
      <xref linkend="EXTEND-CATALOGS">
      shows the major entities and their  relationships
      in  the system catalogs.  (Columns that do not refer
Index: doc/src/sgml/history.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/history.sgml,v
retrieving revision 1.19
diff -c -r1.19 history.sgml
*** doc/src/sgml/history.sgml	7 Jan 2002 02:29:12 -0000	1.19
--- doc/src/sgml/history.sgml	17 Jan 2003 20:55:06 -0000
***************
*** 3,9 ****
  -->
  
  <sect1 id="history">
!  <title>A Short History of <productname>PostgreSQL</productname></title>
  
   <para>
    The object-relational database management system now known as 
--- 3,9 ----
  -->
  
  <sect1 id="history">
!  <title>A Brief History of <productname>PostgreSQL</productname></title>
  
   <para>
    The object-relational database management system now known as 
***************
*** 54,60 ****
     released  in  June 1990 with the new rule system.  
     Version 3 appeared in 1991 and added support for  multiple
     storage  managers,  an  improved  query executor, and a
!    rewritten rewrite rule  system.   For  the  most  part, subsequent
     releases  until <productname>Postgres95</productname> (see below)
     focused on portability and reliability.
    </para>
--- 54,60 ----
     released  in  June 1990 with the new rule system.  
     Version 3 appeared in 1991 and added support for  multiple
     storage  managers,  an  improved  query executor, and a
!    rewritten rule  system.   For  the  most  part, subsequent
     releases  until <productname>Postgres95</productname> (see below)
     focused on portability and reliability.
    </para>
Index: doc/src/sgml/info.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/info.sgml,v
retrieving revision 1.17
diff -c -r1.17 info.sgml
*** doc/src/sgml/info.sgml	15 Nov 2002 03:11:16 -0000	1.17
--- doc/src/sgml/info.sgml	17 Jan 2003 18:25:10 -0000
***************
*** 71,78 ****
        Information for <productname>PostgreSQL</productname>
        developers.  This is intended for those who are contributing to
        the <productname>PostgreSQL</productname> project; application
!       development information appears in the <citetitle>Programmer's
!       Guide</citetitle>.
       </para>
      </listitem>
     </varlistentry>
--- 71,77 ----
        Information for <productname>PostgreSQL</productname>
        developers.  This is intended for those who are contributing to
        the <productname>PostgreSQL</productname> project; application
!       development information appears in the &cite-programmer;.
       </para>
      </listitem>
     </varlistentry>
***************
*** 88,95 ****
      <term>man pages</term>
      <listitem>
       <para>
!       The <citetitle>Reference Manual</citetitle>'s pages in the
!       traditional Unix man format.  There is no difference in content.
       </para>
      </listitem>
     </varlistentry>
--- 87,94 ----
      <term>man pages</term>
      <listitem>
       <para>
!       The &cite-reference;'s pages in the traditional Unix man
!       format. There is no difference in content.
       </para>
      </listitem>
     </varlistentry>
Index: doc/src/sgml/installation.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/installation.sgml,v
retrieving revision 1.127
diff -c -r1.127 installation.sgml
*** doc/src/sgml/installation.sgml	11 Dec 2002 22:27:26 -0000	1.127
--- doc/src/sgml/installation.sgml	17 Jan 2003 18:32:33 -0000
***************
*** 656,663 ****
         internal header files and the server header files are installed
         into private directories under
         <varname>includedir</varname>.
!        See the <citetitle>Programmer's Guide</citetitle> for
!        information about how to get at the header files for each interface.
         Finally, a private subdirectory will also be created, if appropriate,
         under <varname>libdir</varname> for dynamically loadable modules.       
        </para>
--- 656,663 ----
         internal header files and the server header files are installed
         into private directories under
         <varname>includedir</varname>.
!        See the &cite-programmer; for information about how to get at
!        the header files for each interface.
         Finally, a private subdirectory will also be created, if appropriate,
         under <varname>libdir</varname> for dynamically loadable modules.       
        </para>
***************
*** 1311,1318 ****
  
    <para>
     The following is a quick summary of how to get <productname>PostgreSQL</> up and
!    running once installed. The <citetitle>Administrator's Guide</>
!    contains more information.
    </para>
  
    <procedure>
--- 1311,1317 ----
  
    <para>
     The following is a quick summary of how to get <productname>PostgreSQL</> up and
!    running once installed. The &cite-admin; contains more information.
    </para>
  
    <procedure>
***************
*** 1418,1429 ****
       </para>
  
       <para>
!       The <citetitle>Tutorial</> should be your first reading if you
!       are completely new to <acronym>SQL</> databases.
!       If you are familiar with database concepts then you want to
!       proceed with the <citetitle>Administrator's Guide</citetitle>,
!       which contains information about how to set up the database
!       server, database users, and authentication.
       </para>
      </listitem>
  
--- 1417,1427 ----
       </para>
  
       <para>
!       The &cite-tutorial; should be your first reading if you are
!       completely new to <acronym>SQL</> databases.  If you are
!       familiar with database concepts then you want to proceed with
!       the &cite-admin;, which contains information about how to set up
!       the database server, database users, and authentication.
       </para>
      </listitem>
  
***************
*** 1431,1438 ****
       <para>
        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 <citetitle>Administrator's
!       Guide</citetitle>.
       </para>
      </listitem>
  
--- 1429,1435 ----
       <para>
        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 &cite-admin;.
       </para>
      </listitem>
  
***************
*** 1441,1447 ****
        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 <citetitle>Administrator's Guide</citetitle>.
       </para>
      </listitem>
  
--- 1438,1444 ----
        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 &cite-admin;.
       </para>
      </listitem>
  
Index: doc/src/sgml/jdbc.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/jdbc.sgml,v
retrieving revision 1.41
diff -c -r1.41 jdbc.sgml
*** doc/src/sgml/jdbc.sgml	15 Nov 2002 03:11:16 -0000	1.41
--- doc/src/sgml/jdbc.sgml	17 Jan 2003 18:33:16 -0000
***************
*** 124,132 ****
     <para>
      Also, the client authentication setup in the
      <filename>pg_hba.conf</filename> file may need to be configured.
!     Refer to the <citetitle>Administrator's Guide</citetitle> for
!     details.  The <acronym>JDBC</acronym> Driver supports the trust,
!     ident, password, md5, and crypt authentication methods.
     </para>
    </sect2>
   </sect1>
--- 124,132 ----
     <para>
      Also, the client authentication setup in the
      <filename>pg_hba.conf</filename> file may need to be configured.
!     Refer to the &cite-admin; for details.  The
!     <acronym>JDBC</acronym> Driver supports the trust, ident,
!     password, md5, and crypt authentication methods.
     </para>
    </sect2>
   </sect1>
Index: doc/src/sgml/libpq.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/libpq.sgml,v
retrieving revision 1.105
diff -c -r1.105 libpq.sgml
*** doc/src/sgml/libpq.sgml	7 Jan 2003 04:25:29 -0000	1.105
--- doc/src/sgml/libpq.sgml	17 Jan 2003 18:33:33 -0000
***************
*** 952,958 ****
     escape a character, it is converted into the three digit octal number
     equal to the decimal <acronym>ASCII</acronym> value, and preceded by
     two backslashes. The single quote (') and backslash (\) characters have
!    special alternate escape sequences. See the <citetitle>User's Guide</citetitle>
     for more information. <function>PQescapeBytea
     </function> performs this operation, escaping only the minimally
     required characters.
--- 952,958 ----
     escape a character, it is converted into the three digit octal number
     equal to the decimal <acronym>ASCII</acronym> value, and preceded by
     two backslashes. The single quote (') and backslash (\) characters have
!    special alternate escape sequences. See the &cite-user;
     for more information. <function>PQescapeBytea
     </function> performs this operation, escaping only the minimally
     required characters.
Index: doc/src/sgml/notation.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/notation.sgml,v
retrieving revision 1.20
diff -c -r1.20 notation.sgml
*** doc/src/sgml/notation.sgml	24 Oct 2002 17:48:54 -0000	1.20
--- doc/src/sgml/notation.sgml	17 Jan 2003 18:33:48 -0000
***************
*** 18,24 ****
    We use <filename>/usr/local/pgsql/</filename> as the root
    directory of the installation and <filename>/usr/local/pgsql/data</filename>
    as the directory with the database files.  These directories may vary
!   on your site, details can be derived in the <citetitle>Administrator's Guide</citetitle>.
   </para>
  
   <para>
--- 18,24 ----
    We use <filename>/usr/local/pgsql/</filename> as the root
    directory of the installation and <filename>/usr/local/pgsql/data</filename>
    as the directory with the database files.  These directories may vary
!   on your site, details can be derived in the &cite-admin;.
   </para>
  
   <para>
Index: doc/src/sgml/plpgsql.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/plpgsql.sgml,v
retrieving revision 1.13
diff -c -r1.13 plpgsql.sgml
*** doc/src/sgml/plpgsql.sgml	15 Jan 2003 16:40:24 -0000	1.13
--- doc/src/sgml/plpgsql.sgml	17 Jan 2003 18:34:16 -0000
***************
*** 230,236 ****
     <para>
      Developing in <application>PL/pgSQL</application> is pretty
      straight forward, especially if you have developed in other
!     database procedural languages, such as Oracle's
      <application>PL/SQL</application>.  One good way to develop in
      <application>PL/pgSQL</> is to simply use the text editor of your
      choice to create your functions, and in another window, use
--- 230,236 ----
     <para>
      Developing in <application>PL/pgSQL</application> is pretty
      straight forward, especially if you have developed in other
!     database procedural languages, such as <productname>Oracle</>'s
      <application>PL/SQL</application>.  One good way to develop in
      <application>PL/pgSQL</> is to simply use the text editor of your
      choice to create your functions, and in another window, use
***************
*** 1155,1238 ****
      <title>Returning from a function</title>
  
      <para>
  <synopsis>
  RETURN <replaceable>expression</replaceable>;
  </synopsis>
  
!      <command>RETURN</command> with an expression is used to return
!      from a <application>PL/pgSQL</> function that does not return a
!      set.  The function terminates and the value of
!      <replaceable>expression</replaceable> is returned to the caller.
!     </para>
  
!     <para>
!      To return a composite (row) value, you must write a record or row
!      variable as the <replaceable>expression</replaceable>.  When
!      returning a scalar type, any expression can be used.
!      The expression's result will be automatically cast into the
!      function's return type as described for assignments.
!      (If you have declared the function to return <type>void</>,
!      then the expression can be omitted, and will be ignored in any case.)
!     </para>
  
!     <para>
!      The return value of a function cannot be left undefined. If
!      control reaches the end of the top-level block of the function
!      without hitting a <command>RETURN</command> statement, a run-time
!      error will occur.
!     </para>
  
!     <para>
!      When a <application>PL/pgSQL</> function is declared to return
!      <literal>SETOF</literal> <replaceable>sometype</>, the procedure
!      to follow is slightly different.  In that case, the individual
!      items to return are specified in <command>RETURN NEXT</command>
!      commands, and then a final <command>RETURN</command> command with
!      no arguments is used to indicate that the function has finished
!      executing.  <command>RETURN NEXT</command> can be used with both
!      scalar and composite data types; in the later case, an entire
!      "table" of results will be returned.  Functions that use
!      <command>RETURN NEXT</command> should be called in the following
!      fashion:
  
  <programlisting>
  SELECT * FROM some_func();
  </programlisting>
  
!      That is, the function is used as a table source in a FROM clause.
  
! <synopsis>
! RETURN NEXT <replaceable>expression</replaceable>;
! </synopsis>
  
!      <command>RETURN NEXT</command> does not actually return from the
!      function; it simply saves away the value of the expression (or
!      record or row variable, as appropriate for the data type being
!      returned).  Execution then continues with the next statement in
!      the <application>PL/pgSQL</> function.  As successive
!      <command>RETURN NEXT</command> commands are executed, the result
!      set is built up.  A final <command>RETURN</command>, which need
!      have no argument, causes control to exit the function.
!     </para>
  
!    <note>
!     <para>
!      The current implementation of <command>RETURN NEXT</command> for
!      <application>PL/pgSQL</> stores the entire result set before
!      returning from the function, as discussed above.  That means that
!      if a <application>PL/pgSQL</> function produces a very large result set,
!      performance may be poor: data will be written to disk to avoid
!      memory exhaustion, but the function itself will not return until
!      the entire result set has been generated.  A future version of
!      <application>PL/pgSQL</> may allow users to allow users to define set-returning
!      functions that do not have this limitation.  Currently, the point
!      at which data begins being written to disk is controlled by the
!      <varname>SORT_MEM</> configuration variable.  Administrators who
!      have sufficient memory to store larger result sets in memory
!      should consider increasing this parameter.
!     </para>
!    </note>
!   </sect2>
      
     <sect2 id="plpgsql-conditionals">
      <title>Conditionals</title>
--- 1155,1263 ----
      <title>Returning from a function</title>
  
      <para>
+      There are two commands available that allow you to return data
+      from a function: <command>RETURN</command> and <command>RETURN
+      NEXT</command>.
+     </para>
+ 
+     <sect3>
+      <title><command>RETURN</></title>
+ 
+      <para>
  <synopsis>
  RETURN <replaceable>expression</replaceable>;
  </synopsis>
  
!       <command>RETURN</command> with an expression is used to return
!       from a <application>PL/pgSQL</> function that does not return a
!       set.  The function terminates and the value of
!       <replaceable>expression</replaceable> is returned to the caller.
!      </para>
  
!      <para>
!       To return a composite (row) value, you must write a record or row
!       variable as the <replaceable>expression</replaceable>.  When
!       returning a scalar type, any expression can be used.
!       The expression's result will be automatically cast into the
!       function's return type as described for assignments.
!      </para>
  
!      <para>
!       The return value of a function cannot be left undefined. If
!       control reaches the end of the top-level block of the function
!       without hitting a <command>RETURN</command> statement, a run-time
!       error will occur. Note that if you have declared the function to
!       return <type>void</type>, a <command>RETURN</command> statement
!       must still be specified; however, the expression following
!       <command>RETURN</command> is optional, and will be ignored in
!       any case.
!      </para>
!     </sect3>
  
!     <sect3>
!      <title><command>RETURN NEXT</></title>
! 
! <synopsis>
! RETURN NEXT <replaceable>expression</replaceable>;
! </synopsis>
! 
!      <para>
!       When a <application>PL/pgSQL</> function is declared to return
!       <literal>SETOF</literal> <replaceable>sometype</>, the procedure
!       to follow is slightly different.  In that case, the individual
!       items to return are specified in <command>RETURN NEXT</command>
!       commands, and then a final <command>RETURN</command> command
!       with no arguments is used to indicate that the function has
!       finished executing.  <command>RETURN NEXT</command> can be used
!       with both scalar and composite data types; in the later case, an
!       entire <quote>table</quote> of results will be returned.
!       Functions that use <command>RETURN NEXT</command> should be
!       called in the following fashion:
  
  <programlisting>
  SELECT * FROM some_func();
  </programlisting>
  
!       That is, the function is used as a table source in a FROM
!       clause.
!      </para>
  
!      <para>
!       <command>RETURN NEXT</command> does not actually return from the
!       function; it simply saves away the value of the expression (or
!       record or row variable, as appropriate for the data type being
!       returned).  Execution then continues with the next statement in
!       the <application>PL/pgSQL</> function.  As successive
!       <command>RETURN NEXT</command> commands are executed, the result
!       set is built up.  A final <command>RETURN</command>, which should
!       have no argument, causes control to exit the function.
!      </para>
  
!      <para>
!       For more information on using set-returning functions in
!       <productname>PostgreSQL</productname>, refer to XXX.
!      </para
  
!      <note>
!       <para>
!        The current implementation of <command>RETURN NEXT</command>
!        for <application>PL/pgSQL</> stores the entire result set
!        before returning from the function, as discussed above.  That
!        means that if a <application>PL/pgSQL</> function produces a
!        very large result set, performance may be poor: data will be
!        written to disk to avoid memory exhaustion, but the function
!        itself will not return until the entire result set has been
!        generated.  A future version of <application>PL/pgSQL</> may
!        allow users to allow users to define set-returning functions
!        that do not have this limitation.  Currently, the point at
!        which data begins being written to disk is controlled by the
!        <varname>SORT_MEM</> configuration variable.  Administrators
!        who have sufficient memory to store larger result sets in
!        memory should consider increasing this parameter.
!       </para>
!      </note>
!     </sect3>
!    </sect2>
      
     <sect2 id="plpgsql-conditionals">
      <title>Conditionals</title>
***************
*** 1267,1275 ****
  END IF;
  </synopsis>
  
!         IF-THEN statements are the simplest form of IF. The
!         statements between THEN and END IF will be executed if
!         the condition is true. Otherwise, they are skipped.
  
  <programlisting>
  IF v_user_id &lt;&gt; 0 THEN
--- 1292,1302 ----
  END IF;
  </synopsis>
  
!         <literal>IF-THEN</literal> statements are the simplest form of
!         <literal>IF</literal>. The statements between
!         <literal>THEN</literal> and <literal>END IF</literal> will be
!         executed if the condition is true. Otherwise, they are
!         skipped.
  
  <programlisting>
  IF v_user_id &lt;&gt; 0 THEN
***************
*** 1291,1299 ****
  END IF;
  </synopsis>
  
!         IF-THEN-ELSE statements add to IF-THEN by letting you
!         specify an alternative set of statements that should be executed if
! 	the condition evaluates to FALSE.
  
  <programlisting>
  IF parentid IS NULL or parentid = ''''
--- 1318,1327 ----
  END IF;
  </synopsis>
  
!         <literal>IF-THEN-ELSE</literal> statements add to
!         <literal>IF-THEN</literal> by letting you specify an
!         alternative set of statements that should be executed if the
!         condition evaluates to FALSE.
  
  <programlisting>
  IF parentid IS NULL or parentid = ''''
***************
*** 1311,1324 ****
      return ''f'';
  END IF;
  </programlisting>
!        </para>
!      </sect3>
  
       <sect3>
        <title><literal>IF-THEN-ELSE IF</></title>
  
         <para>
!         IF statements can be nested, as in the following example:
  <programlisting>
  IF demo_row.sex = ''m'' THEN
    pretty_sex := ''man'';
--- 1339,1354 ----
      return ''f'';
  END IF;
  </programlisting>
!      </para>
!     </sect3>
  
       <sect3>
        <title><literal>IF-THEN-ELSE IF</></title>
  
         <para>
!         <literal>IF</literal> statements can be nested, as in the
!         following example:
! 
  <programlisting>
  IF demo_row.sex = ''m'' THEN
    pretty_sex := ''man'';
***************
*** 1331,1342 ****
         </para>
  
         <para>
!         When you use this form, you are actually
!         nesting an IF statement inside the ELSE part of an outer IF
!         statement. Thus you need one END IF statement for each
!         nested IF and one for the parent IF-ELSE.
!         This is workable but grows tedious when there are many
! 	alternatives to be checked.
         </para>
       </sect3>
  
--- 1361,1373 ----
         </para>
  
         <para>
!         When you use this form, you are actually nesting an
!         <literal>IF</literal> statement inside the
!         <literal>ELSE</literal> part of an outer <literal>IF</literal>
!         statement. Thus you need one <literal>END IF</literal>
!         statement for each nested IF and one for the parent
!         <literal>IF-ELSE</literal>.  This is workable but grows
!         tedious when there are many alternatives to be checked.
         </para>
       </sect3>
  
***************
*** 1384,1390 ****
         </para>
  
         <para>
!         The final ELSE section is optional.
         </para>
  
       </sect3>
--- 1415,1421 ----
         </para>
  
         <para>
!         The final <literal>ELSE</literal> statement is optional.
         </para>
  
       </sect3>
***************
*** 1399,1408 ****
       a series of commands.
      </para>
  
!      <sect3>
!       <title>LOOP</title>
  
!        <para>
  <synopsis>
  <optional>&lt;&lt;label&gt;&gt;</optional>
  LOOP
--- 1430,1439 ----
       a series of commands.
      </para>
  
!     <sect3>
!      <title>LOOP</title>
  
!      <para>
  <synopsis>
  <optional>&lt;&lt;label&gt;&gt;</optional>
  LOOP
***************
*** 1410,1422 ****
  END LOOP;
  </synopsis>
  
!         LOOP defines an unconditional loop that is repeated indefinitely
! 	until terminated by an EXIT or RETURN statement.
! 	The optional label can be used by
!         EXIT statements in nested loops to specify which level of
!         nesting should be terminated.
!        </para>
!      </sect3>
  
       <sect3>
        <title>EXIT</title>
--- 1441,1453 ----
  END LOOP;
  </synopsis>
  
!       LOOP defines an unconditional loop that is repeated indefinitely
!       until terminated by an EXIT or <command>RETURN</command>
!       statement.  The optional label can be used by EXIT statements in
!       nested loops to specify which level of nesting should be
!       terminated.
!      </para>
!     </sect3>
  
       <sect3>
        <title>EXIT</title>
***************
*** 1547,1555 ****
      <replaceable>statements</replaceable>
  END LOOP;
  </synopsis>
!      The record or row variable is successively assigned all the rows 
!      resulting from the SELECT query and the loop body is executed 
!      for each row. Here is an example:
      </para>
  
      <para>
--- 1578,1586 ----
      <replaceable>statements</replaceable>
  END LOOP;
  </synopsis>
!      The record or row variable is successively assigned all the rows
!      resulting from the <command>SELECT</command> query and the loop
!      body is executed for each row. Here is an example:
      </para>
  
      <para>
***************
*** 1639,1649 ****
  <synopsis>
  <replaceable>name</replaceable> CURSOR <optional> ( <replaceable>arguments</replaceable> ) </optional> FOR <replaceable>select_query</replaceable> ;
  </synopsis>
!      (<literal>FOR</> may be replaced by <literal>IS</> for Oracle
!      compatibility.)  <replaceable>arguments</replaceable>, if any,
!      are a comma-separated list of <replaceable>name</replaceable>
!      <replaceable>datatype</replaceable> pairs that define names to
!      be replaced by parameter values in the given query.  The actual
       values to substitute for these names will be specified later,
       when the cursor is opened.
      </para>
--- 1670,1681 ----
  <synopsis>
  <replaceable>name</replaceable> CURSOR <optional> ( <replaceable>arguments</replaceable> ) </optional> FOR <replaceable>select_query</replaceable> ;
  </synopsis>
!      (<literal>FOR</> may be replaced by <literal>IS</> for
!      <productname>Oracle</productname> compatibility.)
!      <replaceable>arguments</replaceable>, if any, are a
!      comma-separated list of <replaceable>name</replaceable>
!      <replaceable>datatype</replaceable> pairs that define names to be
!      replaced by parameter values in the given query.  The actual
       values to substitute for these names will be specified later,
       when the cursor is opened.
      </para>
***************
*** 1685,1697 ****
  OPEN <replaceable>unbound-cursor</replaceable> FOR SELECT ...;
  </synopsis>
  
!         The cursor variable is opened and given the specified query
! 	to execute.  The cursor cannot be open already, and it must
! 	have been declared as an unbound cursor (that is, as a simple
! 	<type>refcursor</> variable).  The SELECT query is treated
! 	in the same way as other SELECT statements in <application>PL/pgSQL</>:
! 	<application>PL/pgSQL</> variable names are substituted,
! 	and the query plan is cached for possible re-use.
  
  <programlisting>
  OPEN curs1 FOR SELECT * FROM foo WHERE key = mykey;
--- 1717,1730 ----
  OPEN <replaceable>unbound-cursor</replaceable> FOR SELECT ...;
  </synopsis>
  
!     The cursor variable is opened and given the specified query to
! 	execute.  The cursor cannot be open already, and it must have been
! 	declared as an unbound cursor (that is, as a simple
! 	<type>refcursor</> variable).  The <command>SELECT</command> query
! 	is treated in the same way as other <command>SELECT</command>
! 	statements in <application>PL/pgSQL</>: <application>PL/pgSQL</>
! 	variable names are substituted, and the query plan is cached for
! 	possible re-use.
  
  <programlisting>
  OPEN curs1 FOR SELECT * FROM foo WHERE key = mykey;
***************
*** 1799,1806 ****
  CLOSE <replaceable>cursor</replaceable>;
  </synopsis>
  
!         CLOSE closes the Portal underlying an open cursor.
! 	This can be used to release resources earlier than end of
  	transaction, or to free up the cursor variable to be opened again.
  
  <programlisting>
--- 1832,1839 ----
  CLOSE <replaceable>cursor</replaceable>;
  </synopsis>
  
!     <command>CLOSE</command> closes the Portal underlying an open
! 	cursor.  This can be used to release resources earlier than end of
  	transaction, or to free up the cursor variable to be opened again.
  
  <programlisting>
***************
*** 1815,1825 ****
         <para>
  
          <application>PL/pgSQL</> functions can return cursors to the
!         caller. This is used to return multiple rows or columns from the
!         function. The function opens the cursor and returns the cursor
!         name to the caller. The caller can then FETCH rows from the
!         cursor. The cursor can be closed by the caller, or it will be
!         closed automatically when the transaction closes.
  
         </para>
  
--- 1848,1859 ----
         <para>
  
          <application>PL/pgSQL</> functions can return cursors to the
!         caller. This is used to return multiple rows or columns from
!         the function. The function opens the cursor and returns the
!         cursor name to the caller. The caller can then
!         <command>FETCH</command> rows from the cursor. The cursor can
!         be closed by the caller, or it will be closed automatically
!         when the transaction closes.
  
         </para>
  
***************
*** 1879,1885 ****
     <title>Errors and Messages</title>
  
     <para>
!     Use the RAISE statement to report messages and raise errors.
  
  <synopsis>
  RAISE <replaceable class="parameter">level</replaceable> '<replaceable class="parameter">format</replaceable>' <optional>, <replaceable class="parameter">variable</replaceable> <optional>...</optional></optional>;
--- 1913,1920 ----
     <title>Errors and Messages</title>
  
     <para>
!     Use the <command>RAISE</command> statement to report messages and
!     raise errors.
  
  <synopsis>
  RAISE <replaceable class="parameter">level</replaceable> '<replaceable class="parameter">format</replaceable>' <optional>, <replaceable class="parameter">variable</replaceable> <optional>...</optional></optional>;
***************
*** 1896,1903 ****
      written to the server log, or both is controlled by the
      <option>LOG_MIN_MESSAGES</option> and
      <option>CLIENT_MIN_MESSAGES</option> configuration variables. See
!     the <citetitle>PostgreSQL Administrator's Guide</citetitle> for more
!     information.
     </para>
  
     <para>
--- 1931,1937 ----
      written to the server log, or both is controlled by the
      <option>LOG_MIN_MESSAGES</option> and
      <option>CLIENT_MIN_MESSAGES</option> configuration variables. See
!     the &cite-admin; for more information.
     </para>
  
     <para>
***************
*** 2029,2037 ****
       <term><varname>TG_LEVEL</varname></term>
       <listitem>
        <para>
!        Data type <type>text</type>; a string of either 
!               <literal>ROW</literal> or <literal>STATEMENT</literal> depending on the
!        trigger's definition.
        </para>
       </listitem>
      </varlistentry>
--- 2063,2071 ----
       <term><varname>TG_LEVEL</varname></term>
       <listitem>
        <para>
!        Data type <type>text</type>; a string of either
!        <literal>ROW</literal> or <literal>STATEMENT</literal>
!        depending on the trigger's definition.
        </para>
       </listitem>
      </varlistentry>
***************
*** 2040,2049 ****
       <term><varname>TG_OP</varname></term>
       <listitem>
        <para>
!        Data type <type>text</type>; a string of 
!               <literal>INSERT</literal>, <literal>UPDATE</literal> 
!               or <literal>DELETE</literal> telling
!        for which operation the trigger is fired.
        </para>
       </listitem>
      </varlistentry>
--- 2074,2083 ----
       <term><varname>TG_OP</varname></term>
       <listitem>
        <para>
!        Data type <type>text</type>; a string of
!        <literal>INSERT</literal>, <literal>UPDATE</literal> or
!        <literal>DELETE</literal> telling for which operation the
!        trigger is fired.
        </para>
       </listitem>
      </varlistentry>
***************
*** 2282,2288 ****
  -->
    </sect1info> 
  
!   <title>Porting from Oracle PL/SQL</title>
  
    <indexterm zone="plpgsql-porting">
     <primary>Oracle</primary>
--- 2316,2322 ----
  -->
    </sect1info> 
  
!   <title>Porting from <productname>Oracle</productname> PL/SQL</title>
  
    <indexterm zone="plpgsql-porting">
     <primary>Oracle</primary>
***************
*** 2300,2306 ****
    </note>
  
    <para>
!    This section explains differences between Oracle's PL/SQL and
     <productname>PostgreSQL</>'s <application>PL/pgSQL</application> languages in the hopes of helping developers
     port applications from Oracle to <productname>PostgreSQL</>.  Most of the code here
     is from the <ulink url="http://www.arsdigita.com">ArsDigita</ulink>
--- 2334,2340 ----
    </note>
  
    <para>
!    This section explains differences between <productname>Oracle</>'s PL/SQL and
     <productname>PostgreSQL</>'s <application>PL/pgSQL</application> languages in the hopes of helping developers
     port applications from Oracle to <productname>PostgreSQL</>.  Most of the code here
     is from the <ulink url="http://www.arsdigita.com">ArsDigita</ulink>
***************
*** 2322,2328 ****
     <title>Main Differences</title>
  
     <para>
!     Some things you should keep in mind when porting from Oracle to <productname>PostgreSQL</>:
  
      <itemizedlist>
       <listitem>
--- 2356,2363 ----
     <title>Main Differences</title>
  
     <para>
!     Some things you should keep in mind when porting from
!     <productname>Oracle</productname> to <productname>PostgreSQL</>:
  
      <itemizedlist>
       <listitem>
***************
*** 2479,2485 ****
      </title>
  
      <para>
!      Here is an Oracle function:
  <programlisting>
  CREATE OR REPLACE FUNCTION cs_fmt_browser_version(v_name IN varchar, v_version IN varchar)
  RETURN varchar IS
--- 2514,2520 ----
      </title>
  
      <para>
!      Here is an <productname>Oracle</productname> function:
  <programlisting>
  CREATE OR REPLACE FUNCTION cs_fmt_browser_version(v_name IN varchar, v_version IN varchar)
  RETURN varchar IS
***************
*** 2508,2519 ****
  
        <listitem>
         <para>
!         Oracle can have <literal>IN</literal>, <literal>OUT</literal>,
!         and <literal>INOUT</literal> parameters passed to functions.
!         The <literal>INOUT</literal>, for example, means that the
!         parameter will receive a value and return another. <productname>PostgreSQL</>
!         only has <quote>IN</quote> parameters and functions can return
!         only a single value.
         </para>
        </listitem>
  
--- 2543,2555 ----
  
        <listitem>
         <para>
!         <productname>Oracle</productname> can have
!         <literal>IN</literal>, <literal>OUT</literal>, and
!         <literal>INOUT</literal> parameters passed to functions.  The
!         <literal>INOUT</literal>, for example, means that the
!         parameter will receive a value and return
!         another. <productname>PostgreSQL</> only has <quote>IN</quote>
!         parameters and functions can return only a single value.
         </para>
        </listitem>
  
***************
*** 2644,2654 ****
   
     <example>
      <title>
!      A Procedure with a lot of String Manipulation and OUT Parameters
      </title>
  
      <para>
!      The following Oracle PL/SQL procedure is used to parse a URL and
       return several elements (host, path and query). It is an
       procedure because in <application>PL/pgSQL</application> functions only one value can be returned
       (see <xref linkend="plpgsql-porting-procedures">).  In
--- 2680,2690 ----
   
     <example>
      <title>
!      A Procedure with a lot of String Manipulation and <literal>OUT</> Parameters
      </title>
  
      <para>
!      The following <productname>Oracle</productname> PL/SQL procedure is used to parse a URL and
       return several elements (host, path and query). It is an
       procedure because in <application>PL/pgSQL</application> functions only one value can be returned
       (see <xref linkend="plpgsql-porting-procedures">).  In
***************
*** 2738,2744 ****
       so you can work around it using a combination of other functions.
       I got tired of doing this and created my own
       <function>instr</function> functions that behave exactly like
!      Oracle's (it makes life easier). See the <xref
       linkend="plpgsql-porting-appendix"> for the code.
      </para>
     </note>
--- 2774,2780 ----
       so you can work around it using a combination of other functions.
       I got tired of doing this and created my own
       <function>instr</function> functions that behave exactly like
!      <productname>Oracle</productname>'s (it makes life easier). See the <xref
       linkend="plpgsql-porting-appendix"> for the code.
      </para>
     </note>
***************
*** 2750,2758 ****
     </title>
  
     <para>
!     Oracle procedures give a little more flexibility to the developer
!     because nothing needs to be explicitly returned, but it can be
!     through the use of <literal>INOUT</> or <literal>OUT</> parameters.
     </para>
  
     <para>
--- 2786,2795 ----
     </title>
  
     <para>
!     <productname>Oracle</productname> procedures give a little more
!     flexibility to the developer because nothing needs to be
!     explicitly returned, but it can be through the use of
!     <literal>INOUT</> or <literal>OUT</> parameters.
     </para>
  
     <para>
***************
*** 2890,2901 ****
     </note>
  
     <para>
!     Packages are a way Oracle gives you to encapsulate PL/SQL
!     statements and functions into one entity, like Java classes, where
!     you define methods and objects. You can access these
!     objects/methods with a <quote><literal>.</literal></quote>
!     (dot). Here is an example of an Oracle package from ACS 4 (the
!     <ulink url="http://www.arsdigita.com/doc/">ArsDigita Community
      System</ulink>):
  
  <programlisting>
--- 2927,2939 ----
     </note>
  
     <para>
!     Packages are a way <productname>Oracle</productname> gives you to
!     encapsulate PL/SQL statements and functions into one entity, like
!     Java classes, where you define methods and objects. You can access
!     these objects/methods with a <quote><literal>.</literal></quote>
!     (dot). Here is an example of an <productname>Oracle</productname>
!     package from ACS 4 (the <ulink
!     url="http://www.arsdigita.com/doc/">ArsDigita Community
      System</ulink>):
  
  <programlisting>
***************
*** 2924,2933 ****
     </para>
  
     <para>
!     We port this to <productname>PostgreSQL</> by creating the different objects of
!     the Oracle package as functions with a standard naming
!     convention. We have to pay attention to some other details, like
!     the lack of default parameters in <productname>PostgreSQL</> functions. The above
      package would become something like this:
   
  <programlisting>
--- 2962,2972 ----
     </para>
  
     <para>
!     We port this to <productname>PostgreSQL</> by creating the
!     different objects of the <productname>Oracle</productname> package
!     as functions with a standard naming convention. We have to pay
!     attention to some other details, like the lack of default
!     parameters in <productname>PostgreSQL</> functions. The above
      package would become something like this:
   
  <programlisting>
Index: doc/src/sgml/xaggr.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/xaggr.sgml,v
retrieving revision 1.17
diff -c -r1.17 xaggr.sgml
*** doc/src/sgml/xaggr.sgml	21 Sep 2002 18:32:54 -0000	1.17
--- doc/src/sgml/xaggr.sgml	17 Jan 2003 18:35:20 -0000
***************
*** 114,121 ****
  
    <para>
     For further details see the description of the <command>CREATE
!    AGGREGATE</command> command in the <citetitle>Reference
!    Manual</citetitle>.
    </para>
   </chapter>
  
--- 114,120 ----
  
    <para>
     For further details see the description of the <command>CREATE
!    AGGREGATE</command> command in the &cite-reference;.
    </para>
   </chapter>
  
Index: doc/src/sgml/xfunc.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/xfunc.sgml,v
retrieving revision 1.62
diff -c -r1.62 xfunc.sgml
*** doc/src/sgml/xfunc.sgml	15 Nov 2002 03:11:17 -0000	1.62
--- doc/src/sgml/xfunc.sgml	17 Jan 2003 18:35:50 -0000
***************
*** 2051,2058 ****
      it is not immediately clear which function would be called with
      some trivial input like <literal>test(1, 1.5)</literal>.  The
      currently implemented resolution rules are described in the
!     <citetitle>User's Guide</citetitle>, but it is unwise to design a
!     system that subtly relies on this behavior.
     </para>
  
     <para>
--- 2051,2058 ----
      it is not immediately clear which function would be called with
      some trivial input like <literal>test(1, 1.5)</literal>.  The
      currently implemented resolution rules are described in the
!     &cite-user;, but it is unwise to design a system that subtly
!     relies on this behavior.
     </para>
  
     <para>
Index: doc/src/sgml/ref/alter_database.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/alter_database.sgml,v
retrieving revision 1.3
diff -c -r1.3 alter_database.sgml
*** doc/src/sgml/ref/alter_database.sgml	17 May 2002 01:19:16 -0000	1.3
--- doc/src/sgml/ref/alter_database.sgml	17 Jan 2003 18:37:44 -0000
***************
*** 71,78 ****
  
         <para>
          See <xref linkend="sql-set" endterm="sql-set-title"> and the
!         <citetitle>Administrator's Guide</citetitle> for more
!         information about allowed variable names and values.
         </para>
        </listitem>
       </varlistentry>
--- 71,78 ----
  
         <para>
          See <xref linkend="sql-set" endterm="sql-set-title"> and the
!         &cite-admin; for more information about allowed variable names
!         and values.
         </para>
        </listitem>
       </varlistentry>
Index: doc/src/sgml/ref/alter_table.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/alter_table.sgml,v
retrieving revision 1.53
diff -c -r1.53 alter_table.sgml
*** doc/src/sgml/ref/alter_table.sgml	16 Dec 2002 19:08:25 -0000	1.53
--- doc/src/sgml/ref/alter_table.sgml	17 Jan 2003 18:38:08 -0000
***************
*** 399,407 ****
  
     <para>
      Refer to <command>CREATE TABLE</command> for a further description
!     of valid arguments.
!     The <citetitle>PostgreSQL User's Guide</citetitle> has further
!     information on inheritance.
     </para>
    </refsect2>
   </refsect1>
--- 399,406 ----
  
     <para>
      Refer to <command>CREATE TABLE</command> for a further description
!     of valid arguments. The &cite-user; has further information on
!     inheritance.
     </para>
    </refsect2>
   </refsect1>
Index: doc/src/sgml/ref/alter_user.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/alter_user.sgml,v
retrieving revision 1.23
diff -c -r1.23 alter_user.sgml
*** doc/src/sgml/ref/alter_user.sgml	21 Sep 2002 18:32:54 -0000	1.23
--- doc/src/sgml/ref/alter_user.sgml	17 Jan 2003 20:57:17 -0000
***************
*** 145,152 ****
  
         <para>
          See <xref linkend="sql-set" endterm="sql-set-title"> and the
!         <citetitle>Administrator's Guide</citetitle> for more
!         information about allowed variable names and values.
         </para>
        </listitem>
       </varlistentry>
--- 145,152 ----
  
         <para>
          See <xref linkend="sql-set" endterm="sql-set-title"> and the
!         &cite-admin; for more information about allowed variable names
!         and values.
         </para>
        </listitem>
       </varlistentry>
Index: doc/src/sgml/ref/analyze.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/analyze.sgml,v
retrieving revision 1.9
diff -c -r1.9 analyze.sgml
*** doc/src/sgml/ref/analyze.sgml	31 Jul 2002 17:19:51 -0000	1.9
--- doc/src/sgml/ref/analyze.sgml	17 Jan 2003 18:38:42 -0000
***************
*** 152,159 ****
     <command>ANALYZE</command> deems them uninteresting (for example, in
     a unique-key column, there are no common values) or if the column
     data type does not support the appropriate operators.  There is more
!    information about the statistics in the <citetitle>User's
!    Guide</citetitle>.
    </para>
  
    <para>
--- 152,158 ----
     <command>ANALYZE</command> deems them uninteresting (for example, in
     a unique-key column, there are no common values) or if the column
     data type does not support the appropriate operators.  There is more
!    information about the statistics in the &cite-user;.
    </para>
  
    <para>
Index: doc/src/sgml/ref/begin.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/begin.sgml,v
retrieving revision 1.20
diff -c -r1.20 begin.sgml
*** doc/src/sgml/ref/begin.sgml	21 Sep 2002 18:32:54 -0000	1.20
--- doc/src/sgml/ref/begin.sgml	17 Jan 2003 20:27:55 -0000
***************
*** 121,128 ****
     <command>SET TRANSACTION ISOLATION LEVEL SERIALIZABLE</command>
     just after <command>BEGIN</command> if you need more rigorous transaction
     isolation.  (Alternatively, you can change the default transaction
!    isolation level; see the <citetitle>PostgreSQL Administrator's
!    Guide</citetitle> for details.)
     In SERIALIZABLE mode queries will see only changes committed before
     the entire
     transaction began (actually, before execution of the first <acronym>DML</> statement
--- 121,127 ----
     <command>SET TRANSACTION ISOLATION LEVEL SERIALIZABLE</command>
     just after <command>BEGIN</command> if you need more rigorous transaction
     isolation.  (Alternatively, you can change the default transaction
!    isolation level; see the &cite-admin; for details.)
     In SERIALIZABLE mode queries will see only changes committed before
     the entire
     transaction began (actually, before execution of the first <acronym>DML</> statement
***************
*** 161,167 ****
     </para>
     
     <para>
!     If you turn <literal>autocommit</> mode off, then <command>BEGIN</>
      is not required: any SQL command automatically starts a transaction.
     </para>
    </refsect2>
--- 160,166 ----
     </para>
     
     <para>
!     If you turn <varname>autocommit</> mode off, then <command>BEGIN</>
      is not required: any SQL command automatically starts a transaction.
     </para>
    </refsect2>
Index: doc/src/sgml/ref/checkpoint.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/checkpoint.sgml,v
retrieving revision 1.6
diff -c -r1.6 checkpoint.sgml
*** doc/src/sgml/ref/checkpoint.sgml	21 Apr 2002 19:02:39 -0000	1.6
--- doc/src/sgml/ref/checkpoint.sgml	17 Jan 2003 18:41:12 -0000
***************
*** 34,41 ****
     A checkpoint is a point in the transaction log sequence at which
     all data files have been updated to reflect the information in the
     log.  All data files will be flushed to disk.  Refer to the
!    <citetitle>PostgreSQL Administrator's Guide</citetitle> for more
!    information about the WAL system.
    </para>
  
    <para>
--- 34,40 ----
     A checkpoint is a point in the transaction log sequence at which
     all data files have been updated to reflect the information in the
     log.  All data files will be flushed to disk.  Refer to the
!    &cite-admin; for more information about the WAL system.
    </para>
  
    <para>
***************
*** 48,54 ****
    <title>See Also</title>
  
    <para>
!    <citetitle>PostgreSQL Administrator's Guide</citetitle>
    </para>
   </refsect1>
  
--- 47,53 ----
    <title>See Also</title>
  
    <para>
!    &cite-admin;
    </para>
   </refsect1>
  
***************
*** 61,63 ****
--- 60,79 ----
    </para>
   </refsect1>
  </refentry>
+ 
+ <!-- Keep this comment at the end of the file
+ Local variables:
+ mode: sgml
+ sgml-omittag:nil
+ sgml-shorttag:t
+ sgml-minimize-attributes:nil
+ sgml-always-quote-attributes:t
+ sgml-indent-step:1
+ sgml-indent-data:t
+ sgml-parent-document:nil
+ sgml-default-dtd-file:"../reference.ced"
+ sgml-exposed-tags:nil
+ sgml-local-catalogs:"/usr/lib/sgml/catalog"
+ sgml-local-ecat-files:nil
+ End:
+ -->
Index: doc/src/sgml/ref/create_aggregate.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/create_aggregate.sgml,v
retrieving revision 1.22
diff -c -r1.22 create_aggregate.sgml
*** doc/src/sgml/ref/create_aggregate.sgml	21 Oct 2002 04:33:39 -0000	1.22
--- doc/src/sgml/ref/create_aggregate.sgml	17 Jan 2003 18:41:36 -0000
***************
*** 271,279 ****
     Usage
    </title>
    <para>
!    Refer to the chapter on aggregate functions
!    in the <citetitle>PostgreSQL Programmer's Guide</citetitle> for
!    complete examples of usage.
    </para>
   </refsect1>
  
--- 271,278 ----
     Usage
    </title>
    <para>
!    Refer to the chapter on aggregate functions in the
!    &cite-programmer; for complete examples of usage.
    </para>
   </refsect1>
  
Index: doc/src/sgml/ref/create_cast.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/create_cast.sgml,v
retrieving revision 1.7
diff -c -r1.7 create_cast.sgml
*** doc/src/sgml/ref/create_cast.sgml	15 Nov 2002 03:11:17 -0000	1.7
--- doc/src/sgml/ref/create_cast.sgml	17 Jan 2003 18:41:55 -0000
***************
*** 241,247 ****
     <xref linkend="sql-createfunction" endterm="sql-createfunction-title">,
     <xref linkend="sql-createtype" endterm="sql-createtype-title">,
     <xref linkend="sql-dropcast" endterm="sql-dropcast-title">,
!    <citetitle>PostgreSQL Programmer's Guide</citetitle>
    </para>
   </refsect1>
  
--- 241,247 ----
     <xref linkend="sql-createfunction" endterm="sql-createfunction-title">,
     <xref linkend="sql-createtype" endterm="sql-createtype-title">,
     <xref linkend="sql-dropcast" endterm="sql-dropcast-title">,
!    &cite-programmer;
    </para>
   </refsect1>
  
Index: doc/src/sgml/ref/create_conversion.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/create_conversion.sgml,v
retrieving revision 1.5
diff -c -r1.5 create_conversion.sgml
*** doc/src/sgml/ref/create_conversion.sgml	2 Nov 2002 02:33:03 -0000	1.5
--- doc/src/sgml/ref/create_conversion.sgml	17 Jan 2003 18:42:26 -0000
***************
*** 158,164 ****
    <para>
     <xref linkend="sql-createfunction" endterm="sql-createfunction-title">,
     <xref linkend="sql-dropconversion" endterm="sql-dropconversion-title">,
!    <citetitle>PostgreSQL Programmer's Guide</citetitle>
    </para>
   </refsect1>
  
--- 158,164 ----
    <para>
     <xref linkend="sql-createfunction" endterm="sql-createfunction-title">,
     <xref linkend="sql-dropconversion" endterm="sql-dropconversion-title">,
!    &cite-programmer;
    </para>
   </refsect1>
  
Index: doc/src/sgml/ref/create_database.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/create_database.sgml,v
retrieving revision 1.30
diff -c -r1.30 create_database.sgml
*** doc/src/sgml/ref/create_database.sgml	15 Nov 2002 03:11:17 -0000	1.30
--- doc/src/sgml/ref/create_database.sgml	17 Jan 2003 18:42:50 -0000
***************
*** 281,287 ****
     by specifying its name as the template, this is not (yet) intended as
     a general-purpose COPY DATABASE facility.
     We recommend that databases used as templates be treated as read-only.
!    See the <citetitle>Administrator's Guide</> for more information.
    </para>
    </refsect2>
   </refsect1>
--- 281,287 ----
     by specifying its name as the template, this is not (yet) intended as
     a general-purpose COPY DATABASE facility.
     We recommend that databases used as templates be treated as read-only.
!    See the &cite-admin; for more information.
    </para>
    </refsect2>
   </refsect1>
Index: doc/src/sgml/ref/create_domain.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/create_domain.sgml,v
retrieving revision 1.9
diff -c -r1.9 create_domain.sgml
*** doc/src/sgml/ref/create_domain.sgml	12 Dec 2002 20:35:07 -0000	1.9
--- doc/src/sgml/ref/create_domain.sgml	17 Jan 2003 18:43:28 -0000
***************
*** 58,64 ****
         <para>
          The underlying data type of the domain. This may include array
  	specifiers.
!         Refer to the <citetitle>User's Guide</citetitle> for further
          information about data types and arrays.
         </para>
        </listitem>
--- 58,64 ----
         <para>
          The underlying data type of the domain. This may include array
  	specifiers.
!         Refer to the &cite-user; for further
          information about data types and arrays.
         </para>
        </listitem>
***************
*** 224,230 ****
  
    <simplelist type="inline">
     <member><xref linkend="sql-dropdomain" endterm="sql-dropdomain-title"></member>
!    <member><citetitle>PostgreSQL Programmer's Guide</citetitle></member>
    </simplelist>
   </refsect1>
  
--- 224,230 ----
  
    <simplelist type="inline">
     <member><xref linkend="sql-dropdomain" endterm="sql-dropdomain-title"></member>
!    <member>&cite-programmer;</member>
    </simplelist>
   </refsect1>
  
Index: doc/src/sgml/ref/create_function.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/create_function.sgml,v
retrieving revision 1.43
diff -c -r1.43 create_function.sgml
*** doc/src/sgml/ref/create_function.sgml	21 Sep 2002 18:32:54 -0000	1.43
--- doc/src/sgml/ref/create_function.sgml	17 Jan 2003 18:44:12 -0000
***************
*** 281,288 ****
    <title>Notes</title>
  
     <para>
!     Refer to the chapter in the
!     <citetitle>PostgreSQL Programmer's Guide</citetitle>
      on the topic of extending
      <productname>PostgreSQL</productname> via functions 
      for further information on writing external functions.
--- 281,287 ----
    <title>Notes</title>
  
     <para>
!     Refer to the chapter in the &cite-programmer;
      on the topic of extending
      <productname>PostgreSQL</productname> via functions 
      for further information on writing external functions.
***************
*** 470,476 ****
     <xref linkend="sql-load" endterm="sql-load-title">,
     <xref linkend="sql-revoke" endterm="sql-revoke-title">,
     <xref linkend="app-createlang">,
!    <citetitle>PostgreSQL Programmer's Guide</citetitle>
    </para>
   </refsect1>
  
--- 469,475 ----
     <xref linkend="sql-load" endterm="sql-load-title">,
     <xref linkend="sql-revoke" endterm="sql-revoke-title">,
     <xref linkend="app-createlang">,
!    &cite-programmer;
    </para>
   </refsect1>
  
Index: doc/src/sgml/ref/create_group.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/create_group.sgml,v
retrieving revision 1.8
diff -c -r1.8 create_group.sgml
*** doc/src/sgml/ref/create_group.sgml	21 Apr 2002 19:02:39 -0000	1.8
--- doc/src/sgml/ref/create_group.sgml	17 Jan 2003 18:46:31 -0000
***************
*** 107,116 ****
     Description
    </title>
    <para>
!    CREATE GROUP will create a new group in the database installation.
!    Refer to the <citetitle>Administrator's Guide</citetitle> for information about using groups
!    for authentication.
!    You must be a database superuser to use this command.
    </para>
    <para>
     Use <xref linkend="SQL-ALTERGROUP" endterm="SQL-ALTERGROUP-title">
--- 107,116 ----
     Description
    </title>
    <para>
!    <command>CREATE GROUP</command> will create a new group in the
!    database installation.  Refer to the &cite-admin; for information
!    about using groups for authentication. You must be a database
!    superuser to use this command.
    </para>
    <para>
     Use <xref linkend="SQL-ALTERGROUP" endterm="SQL-ALTERGROUP-title">
Index: doc/src/sgml/ref/create_language.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/create_language.sgml,v
retrieving revision 1.29
diff -c -r1.29 create_language.sgml
*** doc/src/sgml/ref/create_language.sgml	21 Nov 2002 23:34:43 -0000	1.29
--- doc/src/sgml/ref/create_language.sgml	17 Jan 2003 18:47:03 -0000
***************
*** 37,45 ****
    <para>
     <command>CREATE LANGUAGE</command> effectively associates the
     language name with a call handler that is responsible for executing
!    functions written in the language.  Refer to the
!    <citetitle>Programmer's Guide</citetitle> for more information
!    about language call handlers.
    </para>
  
    <para>
--- 37,44 ----
    <para>
     <command>CREATE LANGUAGE</command> effectively associates the
     language name with a call handler that is responsible for executing
!    functions written in the language.  Refer to the &cite-programmer;
!    for more information about language call handlers.
    </para>
  
    <para>
***************
*** 301,307 ****
      <member><xref linkend="sql-droplanguage" endterm="sql-droplanguage-title"></member>
      <member><xref linkend="sql-grant" endterm="sql-grant-title"></member>
      <member><xref linkend="sql-revoke" endterm="sql-revoke-title"></member>
!     <member><citetitle>PostgreSQL Programmer's Guide</citetitle></member>
     </simplelist>
    </para>
   </refsect1>
--- 300,306 ----
      <member><xref linkend="sql-droplanguage" endterm="sql-droplanguage-title"></member>
      <member><xref linkend="sql-grant" endterm="sql-grant-title"></member>
      <member><xref linkend="sql-revoke" endterm="sql-revoke-title"></member>
!     <member>&cite-programmer;</member>
     </simplelist>
    </para>
   </refsect1>
Index: doc/src/sgml/ref/create_opclass.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/create_opclass.sgml,v
retrieving revision 1.4
diff -c -r1.4 create_opclass.sgml
*** doc/src/sgml/ref/create_opclass.sgml	4 Oct 2002 22:19:29 -0000	1.4
--- doc/src/sgml/ref/create_opclass.sgml	17 Jan 2003 18:47:36 -0000
***************
*** 224,231 ****
  
    <para>
      Refer to the chapter on interfacing extensions to indexes in the
!     <citetitle>PostgreSQL Programmer's Guide</citetitle>
!     for further information.
    </para>
    
    <refsect2 id="R2-SQL-CREATEOPCLASS-3">
--- 224,230 ----
  
    <para>
      Refer to the chapter on interfacing extensions to indexes in the
!     &cite-programmer; for further information.
    </para>
    
    <refsect2 id="R2-SQL-CREATEOPCLASS-3">
Index: doc/src/sgml/ref/create_operator.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/create_operator.sgml,v
retrieving revision 1.32
diff -c -r1.32 create_operator.sgml
*** doc/src/sgml/ref/create_operator.sgml	21 Sep 2002 18:32:54 -0000	1.32
--- doc/src/sgml/ref/create_operator.sgml	17 Jan 2003 18:47:56 -0000
***************
*** 436,443 ****
      Notes
     </title>
     <para>
!     Refer to the chapter on operators in the
!     <citetitle>PostgreSQL User's Guide</citetitle>
      for further information.
      Refer to <command>DROP OPERATOR</command> to delete
      user-defined operators from a database.
--- 436,442 ----
      Notes
     </title>
     <para>
!     Refer to the chapter on operators in the &cite-user;
      for further information.
      Refer to <command>DROP OPERATOR</command> to delete
      user-defined operators from a database.
Index: doc/src/sgml/ref/create_sequence.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/create_sequence.sgml,v
retrieving revision 1.29
diff -c -r1.29 create_sequence.sgml
*** doc/src/sgml/ref/create_sequence.sgml	10 Nov 2002 00:10:20 -0000	1.29
--- doc/src/sgml/ref/create_sequence.sgml	17 Jan 2003 18:48:11 -0000
***************
*** 256,262 ****
     <function>currval</function> and
     <function>setval</function>
     to operate on the sequence.  These functions are documented in
!    the <citetitle>User's Guide</citetitle>.
    </para>
  
    <para>
--- 256,262 ----
     <function>currval</function> and
     <function>setval</function>
     to operate on the sequence.  These functions are documented in
!    the &cite-user;.
    </para>
  
    <para>
Index: doc/src/sgml/ref/create_table.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/create_table.sgml,v
retrieving revision 1.60
diff -c -r1.60 create_table.sgml
*** doc/src/sgml/ref/create_table.sgml	16 Dec 2002 19:08:25 -0000	1.60
--- doc/src/sgml/ref/create_table.sgml	17 Jan 2003 20:06:21 -0000
***************
*** 147,154 ****
      <listitem>
       <para>
        The data type of the column. This may include array specifiers.
!       Refer to the <citetitle>User's Guide</citetitle> for further
!       information about data types and arrays.
       </para>
      </listitem>
     </varlistentry>
--- 147,154 ----
      <listitem>
       <para>
        The data type of the column. This may include array specifiers.
!       Refer to the &cite-user; for further information about data
!       types and arrays.
       </para>
      </listitem>
     </varlistentry>
Index: doc/src/sgml/ref/create_trigger.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/create_trigger.sgml,v
retrieving revision 1.31
diff -c -r1.31 create_trigger.sgml
*** doc/src/sgml/ref/create_trigger.sgml	17 Dec 2002 17:41:30 -0000	1.31
--- doc/src/sgml/ref/create_trigger.sgml	17 Jan 2003 20:07:02 -0000
***************
*** 202,210 ****
    </para>
  
    <para>
!    Refer to the chapters on SPI and Triggers in the
!    <citetitle>PostgreSQL Programmer's Guide</citetitle>  for  more
!    information.
    </para>
   </refsect1>
  
--- 202,209 ----
    </para>
  
    <para>
!    Refer to the chapters on SPI and Triggers in the &cite-programmer;
!    for more information.
    </para>
   </refsect1>
  
***************
*** 349,355 ****
     <member><xref linkend="sql-createfunction" endterm="sql-createfunction-title"></member>
     <member><xref linkend="sql-altertrigger" endterm="sql-altertrigger-title"></member>
     <member><xref linkend="sql-droptrigger" endterm="sql-droptrigger-title"></member>
!    <member><citetitle>PostgreSQL Programmer's Guide</citetitle></member>
    </simplelist>
   </refsect1>
  </refentry>
--- 348,354 ----
     <member><xref linkend="sql-createfunction" endterm="sql-createfunction-title"></member>
     <member><xref linkend="sql-altertrigger" endterm="sql-altertrigger-title"></member>
     <member><xref linkend="sql-droptrigger" endterm="sql-droptrigger-title"></member>
!    <member>&cite-programmer;</member>
    </simplelist>
   </refsect1>
  </refentry>
Index: doc/src/sgml/ref/create_type.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/create_type.sgml,v
retrieving revision 1.37
diff -c -r1.37 create_type.sgml
*** doc/src/sgml/ref/create_type.sgml	21 Nov 2002 23:34:43 -0000	1.37
--- doc/src/sgml/ref/create_type.sgml	17 Jan 2003 20:07:18 -0000
***************
*** 468,474 ****
    <simplelist type="inline">
     <member><xref linkend="sql-createfunction" endterm="sql-createfunction-title"></member>
     <member><xref linkend="sql-droptype" endterm="sql-droptype-title"></member>
!    <member><citetitle>PostgreSQL Programmer's Guide</citetitle></member>
    </simplelist>
   </refsect1>
  
--- 468,474 ----
    <simplelist type="inline">
     <member><xref linkend="sql-createfunction" endterm="sql-createfunction-title"></member>
     <member><xref linkend="sql-droptype" endterm="sql-droptype-title"></member>
!    <member>&cite-programmer;</member>
    </simplelist>
   </refsect1>
  
Index: doc/src/sgml/ref/create_user.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/create_user.sgml,v
retrieving revision 1.23
diff -c -r1.23 create_user.sgml
*** doc/src/sgml/ref/create_user.sgml	27 Feb 2002 21:14:53 -0000	1.23
--- doc/src/sgml/ref/create_user.sgml	17 Jan 2003 20:07:55 -0000
***************
*** 34,43 ****
  
    <para>
     <command>CREATE USER</command> will add a new user to an instance
!    of <productname>PostgreSQL</productname>. Refer to the
!    <citetitle>Administrator's Guide</citetitle> for information about
!    managing users and authentication.  You must be a database
!    superuser to use this command.
    </para>
  
    <refsect2>
--- 34,42 ----
  
    <para>
     <command>CREATE USER</command> will add a new user to an instance
!    of <productname>PostgreSQL</productname>. Refer to the &cite-admin;
!    for information about managing users and authentication.  You must
!    be a database superuser to use this command.
    </para>
  
    <refsect2>
***************
*** 102,113 ****
         </para>
  
         <para>
!         See the chapter on client authentication in the
!         <citetitle>Administrator's Guide</citetitle> for details on
!         how to set up authentication mechanisms.  Note that older
!         clients may lack support for the MD5 authentication mechanism
!         that is needed to work with passwords that are stored
!         encrypted.
         </para>
        </listitem>
       </varlistentry>
--- 101,111 ----
         </para>
  
         <para>
!         See the chapter on client authentication in the &cite-admin;
!         for details on how to set up authentication mechanisms.  Note
!         that older clients may lack support for the MD5 authentication
!         mechanism that is needed to work with passwords that are
!         stored encrypted.
         </para>
        </listitem>
       </varlistentry>
Index: doc/src/sgml/ref/drop_aggregate.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/drop_aggregate.sgml,v
retrieving revision 1.19
diff -c -r1.19 drop_aggregate.sgml
*** doc/src/sgml/ref/drop_aggregate.sgml	12 Jul 2002 18:43:12 -0000	1.19
--- doc/src/sgml/ref/drop_aggregate.sgml	17 Jan 2003 20:08:54 -0000
***************
*** 47,56 ****
         <para>
  	The input data type of the aggregate function,
  	or <literal>*</literal> if the function accepts any input type.
! 	(Refer to the <citetitle>PostgreSQL User's Guide</citetitle> for
! 	further information about data types.)
! 	<comment>This should become a cross-reference rather than a
! 	 hard-coded chapter number</comment>
         </para>
        </listitem>
       </varlistentry>
--- 47,53 ----
         <para>
  	The input data type of the aggregate function,
  	or <literal>*</literal> if the function accepts any input type.
! 	(Refer to the &cite-user; for further information about data types.)
         </para>
        </listitem>
       </varlistentry>
Index: doc/src/sgml/ref/ecpg-ref.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/ecpg-ref.sgml,v
retrieving revision 1.23
diff -c -r1.23 ecpg-ref.sgml
*** doc/src/sgml/ref/ecpg-ref.sgml	15 Nov 2002 03:11:18 -0000	1.23
--- doc/src/sgml/ref/ecpg-ref.sgml	17 Jan 2003 20:10:06 -0000
***************
*** 49,55 ****
  
    <para>
     This reference page does not describe the embedded SQL language.
!    See the &cite-programmer; for that.
    </para>
   </refsect1>
  
--- 49,55 ----
  
    <para>
     This reference page does not describe the embedded SQL language.
!    See the &cite-programmer; for more information on that topic.
    </para>
   </refsect1>
  
***************
*** 196,203 ****
    <title>See Also</title>
  
    <para>
!    <citetitle>PostgreSQL Programmer's Guide</citetitle> for a more
!    detailed description of the embedded SQL interface
    </para>
   </refsect1>
  
--- 196,203 ----
    <title>See Also</title>
  
    <para>
!    &cite-programmer; for a more detailed description of the embedded
!    SQL interface
    </para>
   </refsect1>
  
Index: doc/src/sgml/ref/execute.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/execute.sgml,v
retrieving revision 1.1
diff -c -r1.1 execute.sgml
*** doc/src/sgml/ref/execute.sgml	27 Aug 2002 04:55:07 -0000	1.1
--- doc/src/sgml/ref/execute.sgml	17 Jan 2003 20:46:39 -0000
***************
*** 21,27 ****
     <date>2002-08-12</date>
    </refsynopsisdivinfo>
    <synopsis>
!    EXECUTE <replaceable class="PARAMETER">plan_name</replaceable> [ (<replaceable class="PARAMETER">parameter</replaceable> [, ...] ) ]
    </synopsis>
  
    <refsect2 id="R2-SQL-EXECUTE-1">
--- 21,27 ----
     <date>2002-08-12</date>
    </refsynopsisdivinfo>
    <synopsis>
!    EXECUTE <replaceable class="PARAMETER">plan_name</replaceable> [ (<replaceable class="PARAMETER">parameter</replaceable> [, ...] ) ] [ INTO [ TEMPORARY | TEMP ] <replaceable class="PARAMETER">table</replaceable> ]
    </synopsis>
  
    <refsect2 id="R2-SQL-EXECUTE-1">
***************
*** 42,57 ****
         </para>
        </listitem>
       </varlistentry>
       <varlistentry>
        <term><replaceable class="PARAMETER">parameter</replaceable></term>
        <listitem>
         <para>
! 		The actual value of a parameter to the prepared query.
! 		This must be an expression yielding a value of a type
! 		compatible with
! 		the data-type specified for this parameter position in the
! 		<command>PREPARE</command> statement that created the prepared
! 		query.
         </para>
        </listitem>
       </varlistentry>
--- 42,69 ----
         </para>
        </listitem>
       </varlistentry>
+ 
       <varlistentry>
        <term><replaceable class="PARAMETER">parameter</replaceable></term>
        <listitem>
         <para>
! 		The actual value of a parameter to the prepared query.  This
! 		must be an expression yielding a value of a type compatible
! 		with the data-type specified for this parameter position in
! 		the <command>PREPARE</command> statement that created the
! 		prepared query.
!        </para>
!       </listitem>
!      </varlistentry>
! 
!      <varlistentry>
!       <term><replaceable class="PARAMETER">table</replaceable></term>
!       <listitem>
!        <para>
!         The name of the table in which to store the results of
!         executing the query (if it is a <command>SELECT</command>). If
!         no table is specified, the results are returned to the client
!         (as normal).
         </para>
        </listitem>
       </varlistentry>
***************
*** 83,88 ****
--- 95,107 ----
     error is raised. Note that (unlike functions) prepared queries are
     not overloaded based on the type or number of their parameters: the
     name of a prepared query must be unique within a database session.
+   </para>
+ 
+   <para>
+    Like <command>SELECT INTO</command>, <command>EXECUTE</command> can
+    be used to store the results of executing the query in a table by
+    specifying an INTO clause. For more information on this behabior,
+    consult the reference for <xref linkend="sql-selectinto">.
    </para>
  
    <para>
Index: doc/src/sgml/ref/explain.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/explain.sgml,v
retrieving revision 1.21
diff -c -r1.21 explain.sgml
*** doc/src/sgml/ref/explain.sgml	15 Nov 2002 03:11:18 -0000	1.21
--- doc/src/sgml/ref/explain.sgml	17 Jan 2003 20:56:33 -0000
***************
*** 87,95 ****
  
     <note>
      <para>
!      Prior to <productname>PostgreSQL</productname> 7.3, the query plan
!      was emitted in the form of a NOTICE message.  Now it appears as a
!      query result (formatted like a table with a single text column).
      </para>
     </note>
    </refsect2>
--- 87,96 ----
  
     <note>
      <para>
!      Prior to <productname>PostgreSQL</productname> 7.3, the query
!      plan was emitted in the form of a <literal>NOTICE</literal>
!      message.  Now it appears as a query result (formatted like a
!      table with a single text column).
      </para>
     </note>
    </refsect2>
***************
*** 127,138 ****
     costs to estimate which plan is really the cheapest.
    </para>
  
    <para>
     The ANALYZE option causes the query to be actually executed, not only
     planned.  The total elapsed time expended within each plan node (in
     milliseconds) and total number of rows it actually returned are added to
     the display.  This is useful for seeing whether the planner's estimates
!    are close to reality.
    </para>
  
    <caution>
--- 128,153 ----
     costs to estimate which plan is really the cheapest.
    </para>
  
+   <note>
+    <para>
+     In order to allow the <productname>PostgreSQL</productname> query
+     planner to make reasonably informed decisions when optimizing
+     queries, the <command>ANALYZE</command> statement should be used
+     to record statistics about the distribution of data within the
+     table. If you have not done this (or the statistical distribution
+     of the data in the table has changed significantly since the last
+     time <command>ANALYZE</command> was run), the estimated costs and
+     the resulting query plan displayed by <command>EXPLAIN</command>
+     are unlikely to conform to the real properties of the query.
+    </para>
+   </note>
+ 
    <para>
     The ANALYZE option causes the query to be actually executed, not only
     planned.  The total elapsed time expended within each plan node (in
     milliseconds) and total number of rows it actually returned are added to
     the display.  This is useful for seeing whether the planner's estimates
!    are close to the actual performance of the query.
    </para>
  
    <caution>
***************
*** 171,178 ****
     <para>
      There is only sparse documentation on the optimizer's use of cost
      information in <productname>PostgreSQL</productname>.
!     Refer to the <citetitle>User's Guide</citetitle> and
!     <citetitle>Programmer's Guide</citetitle> for more information.
     </para>
    </refsect2>
   </refsect1>
--- 186,192 ----
     <para>
      There is only sparse documentation on the optimizer's use of cost
      information in <productname>PostgreSQL</productname>.
!     Refer to the &cite-user; and &cite-programmer; for more information.
     </para>
    </refsect2>
   </refsect1>
***************
*** 233,239 ****
    <para>
     Note that the specific numbers shown, and even the selected query
     strategy, may vary between <productname>PostgreSQL</productname>
!    releases due to planner improvements.
    </para>
   </refsect1>
  
--- 247,258 ----
    <para>
     Note that the specific numbers shown, and even the selected query
     strategy, may vary between <productname>PostgreSQL</productname>
!    releases due to planner improvements. In addition, the algorithm
!    used by <command>ANALYZE</command> to generate statistics is not
!    completely deterministic; therefore, it is possible (although not
!    likely) for cost estimations to change between runs of
!    <command>ANALYZE</command>, even if the actual distribution of data
!    in the table has not changed.
    </para>
   </refsect1>
  
Index: doc/src/sgml/ref/initdb.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/initdb.sgml,v
retrieving revision 1.23
diff -c -r1.23 initdb.sgml
*** doc/src/sgml/ref/initdb.sgml	11 Oct 2002 23:03:48 -0000	1.23
--- doc/src/sgml/ref/initdb.sgml	17 Jan 2003 20:10:23 -0000
***************
*** 253,259 ****
    <simplelist type="inline">
     <member><xref linkend="app-postgres"></member>
     <member><xref linkend="app-postmaster"></member>
!    <member><citetitle>PostgreSQL Administrator's Guide</citetitle></member>
    </simplelist>
   </refsect1>
  
--- 253,259 ----
    <simplelist type="inline">
     <member><xref linkend="app-postgres"></member>
     <member><xref linkend="app-postmaster"></member>
!    <member>&cite-admin;</member>
    </simplelist>
   </refsect1>
  
Index: doc/src/sgml/ref/initlocation.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/initlocation.sgml,v
retrieving revision 1.17
diff -c -r1.17 initlocation.sgml
*** doc/src/sgml/ref/initlocation.sgml	11 Oct 2002 23:03:48 -0000	1.17
--- doc/src/sgml/ref/initlocation.sgml	17 Jan 2003 20:10:44 -0000
***************
*** 69,75 ****
    <title>See Also</title>
  
    <simplelist type="inline">
!    <member><citetitle>PostgreSQL Administrator's Guide</citetitle></member>
    </simplelist>
   </refsect1>
  
--- 69,75 ----
    <title>See Also</title>
  
    <simplelist type="inline">
!    <member>&cite-admin;</member>
    </simplelist>
   </refsect1>
  
Index: doc/src/sgml/ref/insert.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/insert.sgml,v
retrieving revision 1.19
diff -c -r1.19 insert.sgml
*** doc/src/sgml/ref/insert.sgml	21 Sep 2002 18:32:54 -0000	1.19
--- doc/src/sgml/ref/insert.sgml	17 Jan 2003 20:11:10 -0000
***************
*** 216,223 ****
    </para>
  
    <para>
!    Insert into arrays (refer to the
!    <citetitle>PostgreSQL User's Guide</citetitle> for further
     information about arrays):
  
     <programlisting>
--- 216,222 ----
    </para>
  
    <para>
!    Insert into arrays (refer to the &cite-user; for further
     information about arrays):
  
     <programlisting>
Index: doc/src/sgml/ref/load.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/load.sgml,v
retrieving revision 1.14
diff -c -r1.14 load.sgml
*** doc/src/sgml/ref/load.sgml	21 Nov 2002 23:34:43 -0000	1.14
--- doc/src/sgml/ref/load.sgml	17 Jan 2003 20:12:12 -0000
***************
*** 37,44 ****
     The file name is specified in the same way as for shared library
     names in <xref linkend="sql-createfunction" endterm="sql-createfunction-title">; in particular, one
     may rely on a search path and automatic addition of the system's standard
!    shared library file name extension.  See the
!    <citetitle>Programmer's Guide</citetitle> for more detail.
    </para>
   </refsect1>
  
--- 37,44 ----
     The file name is specified in the same way as for shared library
     names in <xref linkend="sql-createfunction" endterm="sql-createfunction-title">; in particular, one
     may rely on a search path and automatic addition of the system's standard
!    shared library file name extension.  See the &cite-programmer; for
!    more information on this topic.
    </para>
   </refsect1>
  
***************
*** 57,63 ****
  
    <para>
     <xref linkend="sql-createfunction" endterm="sql-createfunction-title">,
!    <citetitle>PostgreSQL Programmer's Guide</citetitle>
    </para>
   </refsect1>
  </refentry>
--- 57,63 ----
  
    <para>
     <xref linkend="sql-createfunction" endterm="sql-createfunction-title">,
!    &cite-programmer;
    </para>
   </refsect1>
  </refentry>
Index: doc/src/sgml/ref/pg_config-ref.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/pg_config-ref.sgml,v
retrieving revision 1.12
diff -c -r1.12 pg_config-ref.sgml
*** doc/src/sgml/ref/pg_config-ref.sgml	15 Nov 2002 03:11:18 -0000	1.12
--- doc/src/sgml/ref/pg_config-ref.sgml	17 Jan 2003 20:12:45 -0000
***************
*** 160,166 ****
    <title>See Also</title>
  
    <para>
!    <citetitle>PostgreSQL Programmer's Guide</citetitle>
    </para>
   </refsect1>
  </refentry>
--- 160,183 ----
    <title>See Also</title>
  
    <para>
!    &cite-programmer;
    </para>
   </refsect1>
  </refentry>
+ 
+ <!-- Keep this comment at the end of the file
+ Local variables:
+ mode: sgml
+ sgml-omittag:nil
+ sgml-shorttag:t
+ sgml-minimize-attributes:nil
+ sgml-always-quote-attributes:t
+ sgml-indent-step:1
+ sgml-indent-data:t
+ sgml-parent-document:nil
+ sgml-default-dtd-file:"../reference.ced"
+ sgml-exposed-tags:nil
+ sgml-local-catalogs:"/usr/lib/sgml/catalog"
+ sgml-local-ecat-files:nil
+ End:
+ -->
Index: doc/src/sgml/ref/pg_ctl-ref.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/pg_ctl-ref.sgml,v
retrieving revision 1.17
diff -c -r1.17 pg_ctl-ref.sgml
*** doc/src/sgml/ref/pg_ctl-ref.sgml	11 Oct 2002 23:03:48 -0000	1.17
--- doc/src/sgml/ref/pg_ctl-ref.sgml	17 Jan 2003 20:13:36 -0000
***************
*** 368,374 ****
    <title>See Also</title>
  
    <para>
!    <xref linkend="app-postmaster">, <citetitle>PostgreSQL Administrator's Guide</citetitle>
    </para>
   </refsect1>
  
--- 368,374 ----
    <title>See Also</title>
  
    <para>
!    <xref linkend="app-postmaster">, &cite-admin;
    </para>
   </refsect1>
  
Index: doc/src/sgml/ref/pg_dump.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/pg_dump.sgml,v
retrieving revision 1.54
diff -c -r1.54 pg_dump.sgml
*** doc/src/sgml/ref/pg_dump.sgml	6 Jan 2003 18:53:24 -0000	1.54
--- doc/src/sgml/ref/pg_dump.sgml	17 Jan 2003 20:14:03 -0000
***************
*** 705,711 ****
     <member><xref linkend="app-pg-dumpall"></member>
     <member><xref linkend="app-pgrestore"></member>
     <member><xref linkend="app-psql"></member>
!    <member><citetitle>PostgreSQL Administrator's Guide</citetitle></member>
    </simplelist>
   </refsect1>
  
--- 705,711 ----
     <member><xref linkend="app-pg-dumpall"></member>
     <member><xref linkend="app-pgrestore"></member>
     <member><xref linkend="app-psql"></member>
!    <member>&cite-admin;</member>
    </simplelist>
   </refsect1>
  
Index: doc/src/sgml/ref/pg_restore.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/pg_restore.sgml,v
retrieving revision 1.34
diff -c -r1.34 pg_restore.sgml
*** doc/src/sgml/ref/pg_restore.sgml	6 Jan 2003 18:53:24 -0000	1.34
--- doc/src/sgml/ref/pg_restore.sgml	17 Jan 2003 20:14:17 -0000
***************
*** 697,703 ****
     <member><xref linkend="app-pgdump"></member>
     <member><xref linkend="app-pg-dumpall"></member>
     <member><xref linkend="app-psql"></member>
!    <member><citetitle>PostgreSQL Administrator's Guide</citetitle></member>
    </simplelist>
   </refsect1>
  </refentry>
--- 697,703 ----
     <member><xref linkend="app-pgdump"></member>
     <member><xref linkend="app-pg-dumpall"></member>
     <member><xref linkend="app-psql"></member>
!    <member>&cite-admin;</member>
    </simplelist>
   </refsect1>
  </refentry>
Index: doc/src/sgml/ref/pgtclsh.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/pgtclsh.sgml,v
retrieving revision 1.5
diff -c -r1.5 pgtclsh.sgml
*** doc/src/sgml/ref/pgtclsh.sgml	21 Apr 2002 19:02:39 -0000	1.5
--- doc/src/sgml/ref/pgtclsh.sgml	17 Jan 2003 20:14:56 -0000
***************
*** 55,61 ****
    <simplelist type="inline">
     <member><xref linkend="app-pgtksh"></member>
     <member>
!     <citetitle>PostgreSQL Programmer's Guide</citetitle> (description of <filename>libpgtcl</filename>)
     </member>
     <member>
      <citerefentry><refentrytitle>tclsh</refentrytitle> <manvolnum>1</manvolnum></citerefentry>
--- 55,61 ----
    <simplelist type="inline">
     <member><xref linkend="app-pgtksh"></member>
     <member>
!     &cite-programmer; (description of <filename>libpgtcl</filename>)
     </member>
     <member>
      <citerefentry><refentrytitle>tclsh</refentrytitle> <manvolnum>1</manvolnum></citerefentry>
Index: doc/src/sgml/ref/pgtksh.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/pgtksh.sgml,v
retrieving revision 1.5
diff -c -r1.5 pgtksh.sgml
*** doc/src/sgml/ref/pgtksh.sgml	21 Apr 2002 19:02:39 -0000	1.5
--- doc/src/sgml/ref/pgtksh.sgml	17 Jan 2003 20:15:18 -0000
***************
*** 55,61 ****
    <simplelist type="inline">
     <member><xref linkend="app-pgtclsh"></member>
     <member>
!     <citetitle>PostgreSQL Programmer's Guide</citetitle> (description of <filename>libpgtcl</filename>)
     </member>
     <member>
      <citerefentry><refentrytitle>tclsh</refentrytitle> <manvolnum>1</manvolnum></citerefentry>
--- 55,61 ----
    <simplelist type="inline">
     <member><xref linkend="app-pgtclsh"></member>
     <member>
!     &cite-programmer; (description of <filename>libpgtcl</filename>)
     </member>
     <member>
      <citerefentry><refentrytitle>tclsh</refentrytitle> <manvolnum>1</manvolnum></citerefentry>
Index: doc/src/sgml/ref/postgres-ref.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/postgres-ref.sgml,v
retrieving revision 1.29
diff -c -r1.29 postgres-ref.sgml
*** doc/src/sgml/ref/postgres-ref.sgml	23 Oct 2002 23:33:08 -0000	1.29
--- doc/src/sgml/ref/postgres-ref.sgml	17 Jan 2003 20:16:00 -0000
***************
*** 123,133 ****
  
     <para>
      You can avoid having to type these options by setting up a
!     configuration file.  See the <citetitle>Administrator's
!     Guide</citetitle> for details.  Some (safe) options can also be
!     set from the connecting client in an application-dependent way.
!     For example, if the environment variable <envar>PGOPTIONS</envar>
!     is set, then <application>libpq</>-based clients will pass that string to the
      server, which will interpret it as
      <application>postgres</application> command-line options.
     </para>
--- 123,133 ----
  
     <para>
      You can avoid having to type these options by setting up a
!     configuration file.  See the &cite-admin; for details.  Some
!     (safe) options can also be set from the connecting client in an
!     application-dependent way.  For example, if the environment
!     variable <envar>PGOPTIONS</envar> is set, then
!     <application>libpq</>-based clients will pass that string to the
      server, which will interpret it as
      <application>postgres</application> command-line options.
     </para>
***************
*** 153,160 ****
  	means that the <quote>day before month</quote> (rather than
  	month before day) rule is used to interpret ambiguous date
  	input, and that the day is printed before the month in certain
! 	date output formats.  See the <citetitle>PostgreSQL User's
! 	Guide</citetitle> for more information.
         </para>
        </listitem>
       </varlistentry>
--- 153,159 ----
  	means that the <quote>day before month</quote> (rather than
  	month before day) rule is used to interpret ambiguous date
  	input, and that the day is printed before the month in certain
! 	date output formats.  See the &cite-user; for more information.
         </para>
        </listitem>
       </varlistentry>
Index: doc/src/sgml/ref/postmaster.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/postmaster.sgml,v
retrieving revision 1.33
diff -c -r1.33 postmaster.sgml
*** doc/src/sgml/ref/postmaster.sgml	11 Oct 2002 23:03:48 -0000	1.33
--- doc/src/sgml/ref/postmaster.sgml	17 Jan 2003 20:17:21 -0000
***************
*** 80,88 ****
     <para>
      <application>postmaster</application> accepts the following
      command line arguments.  For a detailed discussion of the options
!     consult the <citetitle>Administrator's Guide</citetitle>.  You can
!     also save typing most of these options by setting up a
!     configuration file.
      
      <variablelist>
       <varlistentry>
--- 80,87 ----
     <para>
      <application>postmaster</application> accepts the following
      command line arguments.  For a detailed discussion of the options
!     consult the &cite-admin;.  You can also save typing most of these
!     options by setting up a configuration file.
      
      <variablelist>
       <varlistentry>
***************
*** 111,121 ****
        <term>-c <replaceable>name</replaceable>=<replaceable>value</replaceable></term>
        <listitem>
         <para>
!         Sets a named run-time parameter. Consult the
!         <citetitle>Administrator's Guide</citetitle> for a list and
!         descriptions.  Most of the other command line options are in
!         fact short forms of such a parameter assignment.  <option>-c</>
! 	can appear multiple times to set multiple parameters.
         </para>
        </listitem>
       </varlistentry>
--- 110,120 ----
        <term>-c <replaceable>name</replaceable>=<replaceable>value</replaceable></term>
        <listitem>
         <para>
!         Sets a named run-time parameter. Consult the &cite-admin; for
!         a list and descriptions.  Most of the other command line
!         options are in fact short forms of such a parameter
!         assignment.  <option>-c</> can appear multiple times to set
!         multiple parameters.
         </para>
        </listitem>
       </varlistentry>
***************
*** 219,227 ****
  	default, this value is 32, but it can be set as high as your
  	system will support.  (Note that
  	<option>-B</option> is required to be at least twice
! 	<option>-N</option>.  See the <citetitle>Administrator's
! 	Guide</citetitle> for a discussion of system resource requirements
! 	for large numbers of client connections.)
         </para>
        </listitem>
       </varlistentry>
--- 218,226 ----
  	default, this value is 32, but it can be set as high as your
  	system will support.  (Note that
  	<option>-B</option> is required to be at least twice
! 	<option>-N</option>.  See the &cite-admin; for a discussion of
! 	system resource requirements for large numbers of client
! 	connections.)
         </para>
        </listitem>
       </varlistentry>
***************
*** 404,411 ****
      <listitem>
       <para>
        Other environment variables may be used to designate alternative
!       data storage locations.  See the <citetitle>Administrator's
!       Guide</citetitle> for more information.
       </para>
      </listitem>
     </varlistentry>
--- 403,410 ----
      <listitem>
       <para>
        Other environment variables may be used to designate alternative
!       data storage locations.  See the &cite-admin; for more
!       information.
       </para>
      </listitem>
     </varlistentry>
Index: doc/src/sgml/ref/reset.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/reset.sgml,v
retrieving revision 1.17
diff -c -r1.17 reset.sgml
*** doc/src/sgml/ref/reset.sgml	13 Oct 2002 16:55:05 -0000	1.17
--- doc/src/sgml/ref/reset.sgml	17 Jan 2003 20:17:40 -0000
***************
*** 64,70 ****
     current session.  The actual source of this value might be a
     compiled-in default, the postmaster's configuration file or command-line
     switches, or per-database or per-user default settings.  See the
!    <citetitle>Administrator's Guide</citetitle> for details.
    </para>
  
    <para>
--- 64,70 ----
     current session.  The actual source of this value might be a
     compiled-in default, the postmaster's configuration file or command-line
     switches, or per-database or per-user default settings.  See the
!    &cite-admin; for details.
    </para>
  
    <para>
Index: doc/src/sgml/ref/select.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/select.sgml,v
retrieving revision 1.63
diff -c -r1.63 select.sgml
*** doc/src/sgml/ref/select.sgml	24 Oct 2002 21:19:15 -0000	1.63
--- doc/src/sgml/ref/select.sgml	17 Jan 2003 20:24:20 -0000
***************
*** 291,309 ****
    </para>
  
    <para>
!    <command>DISTINCT</command> will eliminate duplicate rows from the
!    result.
!    <command>ALL</command> (the default) will return all candidate rows,
!    including duplicates.
    </para>
  
    <para>
!    <command>DISTINCT ON</command> eliminates rows that match on all the
     specified expressions, keeping only the first row of each set of
     duplicates.  The DISTINCT ON expressions are interpreted using the
     same rules as for ORDER BY items; see below.
     Note that the <quote>first row</quote> of each set is unpredictable
!    unless <command>ORDER BY</command> is used to ensure that the desired
     row appears first.  For example,
     <programlisting>
          SELECT DISTINCT ON (location) location, time, report
--- 291,307 ----
    </para>
  
    <para>
!    DISTINCT will eliminate duplicate rows from the result.  ALL (the
!    default) will return all candidate rows, including duplicates.
    </para>
  
    <para>
!    DISTINCT ON eliminates rows that match on all the
     specified expressions, keeping only the first row of each set of
     duplicates.  The DISTINCT ON expressions are interpreted using the
     same rules as for ORDER BY items; see below.
     Note that the <quote>first row</quote> of each set is unpredictable
!    unless ORDER BY is used to ensure that the desired
     row appears first.  For example,
     <programlisting>
          SELECT DISTINCT ON (location) location, time, report
***************
*** 336,344 ****
    </para>
     
    <para>
!    SELECT queries can be combined using UNION, INTERSECT, and EXCEPT
!    operators.  Use parentheses if necessary to determine the ordering
!    of these operators.
    </para>
     
    <para>
--- 334,342 ----
    </para>
     
    <para>
!    <command>SELECT</command> queries can be combined using UNION,
!    INTERSECT, and EXCEPT operators.  Use parentheses if necessary to
!    determine the ordering of these operators.
    </para>
     
    <para>
***************
*** 368,375 ****
    </para>
  
    <para>
!    The FOR UPDATE clause causes the SELECT statement to lock the selected
!    rows against concurrent updates.
    </para>
     
    <para>
--- 366,373 ----
    </para>
  
    <para>
!    The FOR UPDATE clause causes the <command>SELECT</command>
!    statement to lock the selected rows against concurrent updates.
    </para>
     
    <para>
***************
*** 387,397 ****
     </title>
  
     <para>
!     The FROM clause specifies one or more source tables for the SELECT.
!     If multiple sources are specified, the result is conceptually the
!     Cartesian product of all the rows in all the sources --- but usually
!     qualification conditions are added to restrict the returned rows to
!     a small subset of the Cartesian product.
     </para>
  
     <para>
--- 385,396 ----
     </title>
  
     <para>
!     The FROM clause specifies one or more source tables for the
!     <command>SELECT</command>.  If multiple sources are specified, the
!     result is conceptually the Cartesian product of all the rows in
!     all the sources --- but usually qualification conditions are added
!     to restrict the returned rows to a small subset of the Cartesian
!     product.
     </para>
  
     <para>
***************
*** 407,416 ****
     </para>
  
     <para>
!     A FROM item can also be a parenthesized sub-SELECT (note that an
!     alias clause is required for a sub-SELECT!).  This is an extremely
!     handy feature since it's the only way to get multiple levels of
!     grouping, aggregation, or sorting in a single query.
     </para>
  
     <para>
--- 406,416 ----
     </para>
  
     <para>
!     A FROM item can also be a parenthesized
!     sub-<command>SELECT</command> (note that an alias clause is
!     required for a sub-<command>SELECT</command>!).  This is an
!     extremely useful feature since it's the only way to get multiple
!     levels of grouping, aggregation, or sorting in a single query.
     </para>
  
     <para>
***************
*** 542,564 ****
     </para>
  
     <para>
!     GROUP BY will condense into a single row all selected rows that share the
!     same values for the grouped columns.  Aggregate functions, if any,
!     are computed across all rows making up each group, producing a
!     separate value for each group (whereas without GROUP BY, an
!     aggregate produces a single value computed across all the selected
!     rows).  When GROUP BY is present, it is not valid for the SELECT
!     output expression(s) to refer to
      ungrouped columns except within aggregate functions, since there
!     would be more than one possible value to return for an ungrouped column.
     </para>
  
     <para>
!     A GROUP BY item can be an input column name, or the name or ordinal
!     number of an output column (SELECT expression), or it can be an arbitrary
!     expression formed from input-column values.  In case of ambiguity, a GROUP
!     BY name will 
!     be interpreted as an input-column name rather than an output column name.
     </para>
    </refsect2>
  
--- 542,566 ----
     </para>
  
     <para>
!     GROUP BY will condense into a single row all selected rows that
!     share the same values for the grouped columns.  Aggregate
!     functions, if any, are computed across all rows making up each
!     group, producing a separate value for each group (whereas without
!     GROUP BY, an aggregate produces a single value computed across all
!     the selected rows).  When GROUP BY is present, it is not valid for
!     the <command>SELECT</command> output expression(s) to refer to
      ungrouped columns except within aggregate functions, since there
!     would be more than one possible value to return for an ungrouped
!     column.
     </para>
  
     <para>
!     A GROUP BY item can be an input column name, or the name or
!     ordinal number of an output column (<command>SELECT</command>
!     expression), or it can be an arbitrary expression formed from
!     input-column values.  In case of ambiguity, a GROUP BY name will
!     be interpreted as an input-column name rather than an output
!     column name.
     </para>
    </refsect2>
  
***************
*** 610,619 ****
      </synopsis></para>
      
     <para>
!     An ORDER BY item can be the name or ordinal
!     number of an output column (SELECT expression), or it can be an arbitrary
!     expression formed from input-column values.  In case of ambiguity, an
!     ORDER BY name will be interpreted as an output-column name.
     </para>
     <para>
      The ordinal number refers to the ordinal (left-to-right) position
--- 612,622 ----
      </synopsis></para>
      
     <para>
!     An ORDER BY item can be the name or ordinal number of an output
!     column (<command>SELECT</command> expression), or it can be an
!     arbitrary expression formed from input-column values.  In case of
!     ambiguity, an ORDER BY name will be interpreted as an
!     output-column name.
     </para>
     <para>
      The ordinal number refers to the ordinal (left-to-right) position
***************
*** 697,706 ****
      
     <para>
      The UNION operator computes the collection (set union) of the rows
!     returned by the queries involved.
!     The two SELECT statements that represent the direct operands of the UNION must
!     produce the same number of columns, and corresponding columns must be
!     of compatible data types.
     </para>
      
     <para>
--- 700,709 ----
      
     <para>
      The UNION operator computes the collection (set union) of the rows
!     returned by the queries involved.  The two
!     <command>SELECT</command> statements that represent the direct
!     operands of the UNION must produce the same number of columns, and
!     corresponding columns must be of compatible data types.
     </para>
      
     <para>
***************
*** 710,717 ****
     </para>
      
     <para>
!     Multiple UNION operators in the same SELECT statement are
!     evaluated left to right, unless otherwise indicated by parentheses.
     </para>
      
     <para>
--- 713,721 ----
     </para>
      
     <para>
!     Multiple UNION operators in the same <command>SELECT</command>
!     statement are evaluated left to right, unless otherwise indicated
!     by parentheses.
     </para>
      
     <para>
***************
*** 864,885 ****
     </para>
  
     <para>
!     FOR UPDATE causes the rows retrieved by the query to be locked as though
!     for update.  This prevents them from being modified or deleted by other
!     transactions until the current transaction ends; that is, other
!     transactions that attempt UPDATE, DELETE, or SELECT FOR UPDATE of these
!     rows will be blocked until the current transaction ends.  Also, if an
!     UPDATE, DELETE, or SELECT FOR UPDATE from another transaction has already
!     locked a selected row or rows, SELECT FOR UPDATE will wait for the other
!     transaction to complete, and will then lock and return the updated row
!     (or no row, if the row was deleted).  For further discussion see the
!     concurrency chapter of the <citetitle>User's Guide</citetitle>.
     </para>
  
     <para>
!     If specific tables are named in FOR UPDATE, then only rows coming from
!     those tables are locked; any other tables used in the SELECT are simply
!     read as usual.
     </para>
  
     <para>
--- 868,893 ----
     </para>
  
     <para>
!     FOR UPDATE causes the rows retrieved by the query to be locked as
!     though for update.  This prevents them from being modified or
!     deleted by other transactions until the current transaction ends;
!     that is, other transactions that attempt
!     <command>UPDATE</command>, <command>DELETE</command>, or
!     <command>SELECT FOR UPDATE</command> of these rows will be blocked
!     until the current transaction ends.  Also, if an
!     <command>UPDATE</command>, <command>DELETE</command>, or
!     <command>SELECT FOR UPDATE</command> from another transaction has
!     already locked a selected row or rows, <command>SELECT FOR
!     UPDATE</command> will wait for the other transaction to complete,
!     and will then lock and return the updated row (or no row, if the
!     row was deleted).  For further discussion see the concurrency
!     chapter of the &cite-user;.
     </para>
  
     <para>
!     If specific tables are named in FOR UPDATE, then only rows coming
!     from those tables are locked; any other tables used in the
!     <command>SELECT</command> are simply read as usual.
     </para>
  
     <para>
***************
*** 1097,1105 ****
          4
    </programlisting>
  
! Some other SQL databases cannot do this except by introducing a dummy one-row
! table to do the select from.  A less obvious use is to abbreviate a
! normal select from one or more tables:
  
    <programlisting>
  SELECT distributors.* WHERE distributors.name = 'Westward';
--- 1105,1113 ----
          4
    </programlisting>
  
! Some other <acronym>SQL</acronym> databases cannot do this except by
! introducing a dummy one-row table to do the select from.  A less
! obvious use is to abbreviate a normal select from one or more tables:
  
    <programlisting>
  SELECT distributors.* WHERE distributors.name = 'Westward';
Index: doc/src/sgml/ref/set.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/set.sgml,v
retrieving revision 1.71
diff -c -r1.71 set.sgml
*** doc/src/sgml/ref/set.sgml	12 Jan 2003 01:33:00 -0000	1.71
--- doc/src/sgml/ref/set.sgml	17 Jan 2003 20:25:21 -0000
***************
*** 80,90 ****
    <para>
     The <command>SET</command> command changes run-time configuration
     parameters.  Many of the run-time parameters listed in the
!    <citetitle>Administrator's Guide</citetitle> can be changed on-the-fly
!    with <command>SET</command>.  (But some require superuser privileges
!    to change, and others cannot be changed after server or session start.)
!    Note that <command>SET</command> only affects the value used by the
!    current session.
    </para>
  
    <para>
--- 80,90 ----
    <para>
     The <command>SET</command> command changes run-time configuration
     parameters.  Many of the run-time parameters listed in the
!    &cite-admin; can be changed on-the-fly with <command>SET</command>.
!    (But some require superuser privileges to change, and others cannot
!    be changed after server or session start.)  Note that
!    <command>SET</command> only affects the value used by the current
!    session.
    </para>
  
    <para>
***************
*** 109,118 ****
    </para>
  
    <para>
!    Even with <literal>autocommit</> set to <literal>off</>, <command>SET</>
     does not start a new transaction block. See the
!    <literal>autocommit</> section of the <citetitle>Administrator's
!    Guide</citetitle> for details.
    </para>
  
    <para>
--- 109,117 ----
    </para>
  
    <para>
!    Even with <varname>autocommit</> set to <literal>off</>, <command>SET</>
     does not start a new transaction block. See the
!    <varname>autocommit</> section of the &cite-admin; for details.
    </para>
  
    <para>
***************
*** 517,524 ****
  
    <para>
      The function <function>set_config</function> provides the equivalent
!     capability. See <citetitle>Miscellaneous Functions</citetitle> in the
!     <citetitle>PostgreSQL User's Guide</citetitle>.
    </para>
   </refsect1>
  </refentry>
--- 516,523 ----
  
    <para>
      The function <function>set_config</function> provides the equivalent
!     capability. See <citetitle>Miscellaneous Functions</citetitle> in
!     the &cite-user;.
    </para>
   </refsect1>
  </refentry>
Index: doc/src/sgml/ref/set_transaction.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/set_transaction.sgml,v
retrieving revision 1.11
diff -c -r1.11 set_transaction.sgml
*** doc/src/sgml/ref/set_transaction.sgml	11 Jan 2003 00:00:03 -0000	1.11
--- doc/src/sgml/ref/set_transaction.sgml	17 Jan 2003 20:28:58 -0000
***************
*** 109,117 ****
  <programlisting>
  SET default_transaction_isolation = '<replaceable>value</replaceable>'
  </programlisting>
!    and in the
!    configuration file.  Consult the <citetitle>Administrator's
!    Guide</citetitle> for more information.
    </para>
   </refsect1>
  
--- 109,116 ----
  <programlisting>
  SET default_transaction_isolation = '<replaceable>value</replaceable>'
  </programlisting>
!    and in the configuration file.  Consult the &cite-admin; for more
!    information.
    </para>
   </refsect1>
  
***************
*** 127,134 ****
      not provide the isolation levels <option>READ UNCOMMITTED</option> 
      and <option>REPEATABLE READ</option>. Because of multiversion
      concurrency control, the <option>SERIALIZABLE</option> level is not
!     truly serializable. See the <citetitle>User's Guide</citetitle> for
!     details.
     </para>
  
     <para>
--- 126,132 ----
      not provide the isolation levels <option>READ UNCOMMITTED</option> 
      and <option>REPEATABLE READ</option>. Because of multiversion
      concurrency control, the <option>SERIALIZABLE</option> level is not
!     truly serializable. See the &cite-user; for details.
     </para>
  
     <para>
Index: doc/src/sgml/ref/show.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/show.sgml,v
retrieving revision 1.22
diff -c -r1.22 show.sgml
*** doc/src/sgml/ref/show.sgml	13 Oct 2002 16:55:05 -0000	1.22
--- doc/src/sgml/ref/show.sgml	17 Jan 2003 20:30:08 -0000
***************
*** 62,71 ****
    </para>
  
    <para>
!    Even with <literal>autocommit</> set to <literal>off</>, <command>SHOW</>
     does not start a new transaction block. See the
!    <literal>autocommit</> section of the <citetitle>Administrator's
!    Guide</citetitle> for details.
    </para>
   </refsect1>
  
--- 62,70 ----
    </para>
  
    <para>
!    Even with <varname>autocommit</> set to <literal>off</>, <command>SHOW</>
     does not start a new transaction block. See the
!    <varname>autocommit</> section of the &cite-admin; for details.
    </para>
   </refsect1>
  
***************
*** 91,97 ****
   <refsect1 id="R1-SQL-SHOW-2">
    <title>Examples</title>
    <para>
!    Show the current <literal>DateStyle</literal> setting:
  
  <programlisting>
  SHOW DateStyle;
--- 90,96 ----
   <refsect1 id="R1-SQL-SHOW-2">
    <title>Examples</title>
    <para>
!    Show the current <varname>DateStyle</varname> setting:
  
  <programlisting>
  SHOW DateStyle;
***************
*** 103,109 ****
    </para>
  
    <para>
!    Show the current genetic optimizer (<literal>geqo</literal>) setting:
  <programlisting>
  SHOW GEQO;
   geqo
--- 102,109 ----
    </para>
  
    <para>
!    Show whether the genetic query optimizer is enabled by displaying
!    the <varname>geqo</varname> setting:
  <programlisting>
  SHOW GEQO;
   geqo
***************
*** 148,154 ****
    <para>
      The function <function>current_setting</function> produces equivalent
      output. See <citetitle>Miscellaneous Functions</citetitle> in the
!     <citetitle>PostgreSQL User's Guide</citetitle>.
    </para>
   </refsect1>
  </refentry>
--- 148,154 ----
    <para>
      The function <function>current_setting</function> produces equivalent
      output. See <citetitle>Miscellaneous Functions</citetitle> in the
!     &cite-user;.
    </para>
   </refsect1>
  </refentry>
Index: doc/src/sgml/ref/vacuum.sgml
===================================================================
RCS file: /var/lib/cvs/pgsql-server/doc/src/sgml/ref/vacuum.sgml,v
retrieving revision 1.27
diff -c -r1.27 vacuum.sgml
*** doc/src/sgml/ref/vacuum.sgml	9 Oct 2002 16:27:48 -0000	1.27
--- doc/src/sgml/ref/vacuum.sgml	17 Jan 2003 17:55:34 -0000
***************
*** 206,212 ****
     intended usage is in connection with preparation of user-defined template
     databases, or other databases that are completely read-only and will not
     receive routine maintenance <command>VACUUM</> operations.
!    See the <citetitle>Administrator's Guide</> for details.
    </para>
  
    <refsect2 id="R2-SQL-VACUUM-3">
--- 206,212 ----
     intended usage is in connection with preparation of user-defined template
     databases, or other databases that are completely read-only and will not
     receive routine maintenance <command>VACUUM</> operations.
!    See the &cite-admin; for details.
    </para>
  
    <refsect2 id="R2-SQL-VACUUM-3">
