This patch includes a lot of minor cleanups to the SGML documentation,

including:

- replacing all the appropriate usages of <citetitle>PostgreSQL
...</citetitle> with &cite-user;, &cite-admin;, and so on

- fix an omission in the EXECUTE documentation

- add some more text to the EXPLAIN documentation

- improve the PL/PgSQL RETURN NEXT documentation (more work to do here)

- minor markup fixes


Neil Conway
This commit is contained in:
Bruce Momjian 2003-01-19 00:13:31 +00:00
parent 2042daf5c3
commit be2b660ecd
59 changed files with 562 additions and 474 deletions

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/arch-dev.sgml,v 2.16 2001/11/21 05:53:40 thomas Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/arch-dev.sgml,v 2.17 2003/01/19 00:13:28 momjian Exp $
--> -->
<chapter id="overview"> <chapter id="overview">
@ -478,8 +478,8 @@ current context are performed.
<para> <para>
For information on the syntax and creation of rules in the For information on the syntax and creation of rules in the
<productname>PostgreSQL</productname> system refer to <productname>PostgreSQL</productname> system refer to the
<citetitle>The PostgreSQL User's Guide</citetitle>. &cite-user;.
</para> </para>
<sect2> <sect2>

View File

@ -1,6 +1,6 @@
<!-- <!--
Documentation of the system catalogs, directed toward PostgreSQL developers Documentation of the system catalogs, directed toward PostgreSQL developers
$Header: /cvsroot/pgsql/doc/src/sgml/catalogs.sgml,v 2.64 2002/12/17 17:41:30 momjian Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/catalogs.sgml,v 2.65 2003/01/19 00:13:28 momjian Exp $
--> -->
<chapter id="catalogs"> <chapter id="catalogs">
@ -288,9 +288,9 @@
<para> <para>
New aggregate functions are registered with the <command>CREATE New aggregate functions are registered with the <command>CREATE
AGGREGATE</command> command. See the <citetitle>Programmer's AGGREGATE</command> command. See the &cite-programmer; for more
Guide</citetitle> for more information about writing aggregate information about writing aggregate functions and the meaning of
functions and the meaning of the transition functions, etc. the transition functions, etc.
</para> </para>
</sect1> </sect1>
@ -1446,8 +1446,8 @@
The <structname>pg_database</structname> catalog stores information The <structname>pg_database</structname> catalog stores information
about the available databases. Databases are created with the about the available databases. Databases are created with the
<command>CREATE DATABASE</command> command. Consult the <command>CREATE DATABASE</command> command. Consult the
<citetitle>Administrator's Guide</citetitle> for details about the &cite-admin; for details about the meaning of some of the
meaning of some of the parameters. parameters.
</para> </para>
<para> <para>
@ -1791,8 +1791,8 @@
<para> <para>
This catalog defines groups and stores what users belong to what This catalog defines groups and stores what users belong to what
groups. Groups are created with the <command>CREATE groups. Groups are created with the <command>CREATE
GROUP</command> command. Consult the <citetitle>Administrator's GROUP</command> command. Consult the &cite-admin; for information
Guide</citetitle> for information about user permission management. about user permission management.
</para> </para>
<para> <para>
@ -2022,8 +2022,7 @@
<structname>pg_language</structname> registers call interfaces or <structname>pg_language</structname> registers call interfaces or
languages in which you can write functions or stored procedures. languages in which you can write functions or stored procedures.
See under <command>CREATE LANGUAGE</command> and in the See under <command>CREATE LANGUAGE</command> and in the
<citetitle>Programmer's Guide</citetitle> for more information &cite-programmer; for more information about language handlers.
about language handlers.
</para> </para>
<table> <table>
@ -2298,8 +2297,7 @@
</para> </para>
<para> <para>
Operator classes are described at length in the Operator classes are described at length in the &cite-programmer;.
<citetitle>Programmer's Guide</citetitle>.
</para> </para>
<table> <table>
@ -2387,9 +2385,8 @@
<title>pg_operator</title> <title>pg_operator</title>
<para> <para>
See <command>CREATE OPERATOR</command> and the See <command>CREATE OPERATOR</command> and the &cite-programmer;
<citetitle>Programmer's Guide</citetitle> for details on these for details on these operator parameters.
operator parameters.
</para> </para>
<table> <table>
@ -2559,8 +2556,8 @@
<para> <para>
This catalog stores information about functions (or procedures). This catalog stores information about functions (or procedures).
The description of <command>CREATE FUNCTION</command> and the The description of <command>CREATE FUNCTION</command> and the
<citetitle>Programmer's Guide</citetitle> contain more information &cite-programmer; contain more information about the meaning of
about the meaning of some fields. some fields.
</para> </para>
<para> <para>
@ -2832,8 +2829,8 @@
</para> </para>
<para> <para>
The <citetitle>Administrator's Guide</citetitle> contains detailed The &cite-admin; contains detailed information about user and
information about user and permission management. permission management.
</para> </para>
<para> <para>

View File

@ -1,4 +1,4 @@
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/charset.sgml,v 2.30 2002/11/15 03:11:15 momjian Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/charset.sgml,v 2.31 2003/01/19 00:13:28 momjian Exp $ -->
<chapter id="charset"> <chapter id="charset">
<title>Localization</> <title>Localization</>
@ -309,8 +309,8 @@ perl: warning: Falling back to the standard locale ("C").
<productname>PostgreSQL</> speak their preferred language well. <productname>PostgreSQL</> speak their preferred language well.
If messages in your language is currently not available or fully If messages in your language is currently not available or fully
translated, your assistance would be appreciated. If you want to translated, your assistance would be appreciated. If you want to
help, refer to the <citetitle>Developer's Guide</> or write to the help, refer to the &cite-developer; or write to the developers'
developers' mailing list. mailing list.
</para> </para>
</sect2> </sect2>
</sect1> </sect1>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/client-auth.sgml,v 1.43 2003/01/06 03:18:26 momjian Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/client-auth.sgml,v 1.44 2003/01/19 00:13:28 momjian Exp $
--> -->
<chapter id="client-authentication"> <chapter id="client-authentication">
@ -110,8 +110,7 @@ hostssl <replaceable>database</replaceable> <replaceable>user</replaceable> <
This record matches connection attempts using TCP/IP networks. This record matches connection attempts using TCP/IP networks.
Note that TCP/IP connections are disabled unless the server is Note that TCP/IP connections are disabled unless the server is
started with the <option>-i</option> option or the started with the <option>-i</option> option or the
<literal>tcpip_socket</> <filename>postgresql.conf</> <varname>tcpip_socket</> configuration parameter is enabled.
configuration parameter is enabled.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -129,9 +128,8 @@ hostssl <replaceable>database</replaceable> <replaceable>user</replaceable> <
<para> <para>
To be able make use of this option the server must be built To be able make use of this option the server must be built
with SSL support enabled. Furthermore, SSL must be enabled by with SSL support enabled. Furthermore, SSL must be enabled by
enabling the option <literal>ssl</literal> in enabling the <varname>ssl</varname> configuration parameter
<filename>postgresql.conf</filename> (see <xref (see <xref linkend="runtime-config"> for more information).
linkend="runtime-config">).
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -191,8 +189,8 @@ hostssl <replaceable>database</replaceable> <replaceable>user</replaceable> <
must be zero for the record to match. (Of course IP addresses must be zero for the record to match. (Of course IP addresses
can be spoofed but this consideration is beyond the scope of can be spoofed but this consideration is beyond the scope of
<productname>PostgreSQL</productname>.) If you machine supports <productname>PostgreSQL</productname>.) If you machine supports
IPv6, the default <filename>pg_hba.conf</> will have an IPv6 IPv6, the default <filename>pg_hba.conf</> file will have an
entry for <literal>localhost</>. You can add your own IPv6 IPv6 entry for <literal>localhost</>. You can add your own IPv6
entries to the file. IPv6 entries are used only for IPv6 entries to the file. IPv6 entries are used only for IPv6
connections. connections.
</para> </para>
@ -486,17 +484,18 @@ local db1,db2,@demodbs all md5
</para> </para>
<para> <para>
<literal>trust</> authentication is appropriate and very convenient <literal>trust</> authentication is appropriate and very
for local connections on a single-user workstation. It is usually convenient for local connections on a single-user workstation. It
<emphasis>not</> appropriate by itself on a multiuser machine. is usually <emphasis>not</> appropriate by itself on a multiuser
However, you may be able to use <literal>trust</> even on a multiuser machine. However, you may be able to use <literal>trust</> even
machine, if you restrict access to the postmaster's socket file using on a multiuser machine, if you restrict access to the postmaster's
file-system permissions. To do this, set the parameter socket file using file-system permissions. To do this, set the
<varname>unix_socket_permissions</varname> (and possibly <varname>unix_socket_permissions</varname> (and possibly
<varname>unix_socket_group</varname>) in <filename>postgresql.conf</>, <varname>unix_socket_group</varname>) configuration parameters as
as described in <xref linkend="runtime-config-general">. Or you could described in <xref linkend="runtime-config-general">. Or you
set <varname>unix_socket_directory</varname> to place the socket file could set the <varname>unix_socket_directory</varname>
in a suitably restricted directory. configuration parameter to place the socket file in a suitably
restricted directory.
</para> </para>
<para> <para>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/dfunc.sgml,v 1.22 2002/09/21 18:32:52 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/dfunc.sgml,v 1.23 2003/01/19 00:13:28 momjian Exp $
--> -->
<sect2 id="dfunc"> <sect2 id="dfunc">
@ -318,9 +318,8 @@ ld <other flags> -H512 -T512 -o foo.so -e _nostart \e
-bI:.../lib/postgres.exp -bE:foo.exp foo.o \e -bI:.../lib/postgres.exp -bE:foo.exp foo.o \e
-lm -lc 2>/dev/null -lm -lc 2>/dev/null
.fi .fi
You should look at the <citetitle>PostgreSQL User's Manual</> You should look at the &cite-user; for an explanation of
for an explanation of this this procedure.
procedure.
--> -->

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ecpg.sgml,v 1.40 2002/11/15 03:11:16 momjian Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ecpg.sgml,v 1.41 2003/01/19 00:13:28 momjian Exp $
--> -->
<chapter id="ecpg"> <chapter id="ecpg">
@ -879,7 +879,7 @@ ECPG = ecpg
FETCH <optional><replaceable>direction</></> <optional><replaceable>amount</></> IN|FROM <replaceable>cursor</replaceable> FETCH <optional><replaceable>direction</></> <optional><replaceable>amount</></> IN|FROM <replaceable>cursor</replaceable>
</synopsis> </synopsis>
<indexterm><primary>Oracle</></> <indexterm><primary>Oracle</></>
<application>Oracle</application>, however, does not use the <productname>Oracle</productname>, however, does not use the
keywords <literal>IN</literal> or <literal>FROM</literal>. This keywords <literal>IN</literal> or <literal>FROM</literal>. This
feature cannot be added since it would create parsing conflicts. feature cannot be added since it would create parsing conflicts.
</para> </para>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/extend.sgml,v 1.18 2002/11/03 01:31:32 momjian Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/extend.sgml,v 1.19 2003/01/19 00:13:28 momjian Exp $
--> -->
<chapter id="extend"> <chapter id="extend">
@ -214,8 +214,8 @@ $Header: /cvsroot/pgsql/doc/src/sgml/extend.sgml,v 1.18 2002/11/03 01:31:32 momj
</mediaobject> </mediaobject>
</figure> </figure>
The <citetitle>Developer's Guide</citetitle> gives a more detailed explanation The &cite-developer; gives a more detailed explanation of these
of these catalogs and their columns. However, catalogs and their columns. However,
<xref linkend="EXTEND-CATALOGS"> <xref linkend="EXTEND-CATALOGS">
shows the major entities and their relationships shows the major entities and their relationships
in the system catalogs. (Columns that do not refer in the system catalogs. (Columns that do not refer

View File

@ -1,9 +1,9 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/history.sgml,v 1.19 2002/01/07 02:29:12 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/history.sgml,v 1.20 2003/01/19 00:13:28 momjian Exp $
--> -->
<sect1 id="history"> <sect1 id="history">
<title>A Short History of <productname>PostgreSQL</productname></title> <title>A Brief History of <productname>PostgreSQL</productname></title>
<para> <para>
The object-relational database management system now known as The object-relational database management system now known as
@ -54,7 +54,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/history.sgml,v 1.19 2002/01/07 02:29:12 pet
released in June 1990 with the new rule system. released in June 1990 with the new rule system.
Version 3 appeared in 1991 and added support for multiple Version 3 appeared in 1991 and added support for multiple
storage managers, an improved query executor, and a storage managers, an improved query executor, and a
rewritten rewrite rule system. For the most part, subsequent rewritten rule system. For the most part, subsequent
releases until <productname>Postgres95</productname> (see below) releases until <productname>Postgres95</productname> (see below)
focused on portability and reliability. focused on portability and reliability.
</para> </para>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/info.sgml,v 1.17 2002/11/15 03:11:16 momjian Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/info.sgml,v 1.18 2003/01/19 00:13:28 momjian Exp $
--> -->
<sect1 id="resources"> <sect1 id="resources">
@ -71,8 +71,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/info.sgml,v 1.17 2002/11/15 03:11:16 momjia
Information for <productname>PostgreSQL</productname> Information for <productname>PostgreSQL</productname>
developers. This is intended for those who are contributing to developers. This is intended for those who are contributing to
the <productname>PostgreSQL</productname> project; application the <productname>PostgreSQL</productname> project; application
development information appears in the <citetitle>Programmer's development information appears in the &cite-programmer;.
Guide</citetitle>.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -88,8 +87,8 @@ $Header: /cvsroot/pgsql/doc/src/sgml/info.sgml,v 1.17 2002/11/15 03:11:16 momjia
<term>man pages</term> <term>man pages</term>
<listitem> <listitem>
<para> <para>
The <citetitle>Reference Manual</citetitle>'s pages in the The &cite-reference;'s pages in the traditional Unix man
traditional Unix man format. There is no difference in content. format. There is no difference in content.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>

View File

@ -1,4 +1,4 @@
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/installation.sgml,v 1.127 2002/12/11 22:27:26 momjian Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/installation.sgml,v 1.128 2003/01/19 00:13:28 momjian Exp $ -->
<chapter id="installation"> <chapter id="installation">
<title><![%standalone-include[<productname>PostgreSQL</>]]> <title><![%standalone-include[<productname>PostgreSQL</>]]>
@ -656,8 +656,8 @@ JAVACMD=$JAVA_HOME/bin/java
internal header files and the server header files are installed internal header files and the server header files are installed
into private directories under into private directories under
<varname>includedir</varname>. <varname>includedir</varname>.
See the <citetitle>Programmer's Guide</citetitle> for See the &cite-programmer; for information about how to get at
information about how to get at the header files for each interface. the header files for each interface.
Finally, a private subdirectory will also be created, if appropriate, Finally, a private subdirectory will also be created, if appropriate,
under <varname>libdir</varname> for dynamically loadable modules. under <varname>libdir</varname> for dynamically loadable modules.
</para> </para>
@ -1311,8 +1311,7 @@ export MANPATH
<para> <para>
The following is a quick summary of how to get <productname>PostgreSQL</> up and The following is a quick summary of how to get <productname>PostgreSQL</> up and
running once installed. The <citetitle>Administrator's Guide</> running once installed. The &cite-admin; contains more information.
contains more information.
</para> </para>
<procedure> <procedure>
@ -1418,12 +1417,11 @@ kill `cat /usr/local/pgsql/data/postmaster.pid`
</para> </para>
<para> <para>
The <citetitle>Tutorial</> should be your first reading if you The &cite-tutorial; should be your first reading if you are
are completely new to <acronym>SQL</> databases. completely new to <acronym>SQL</> databases. If you are
If you are familiar with database concepts then you want to familiar with database concepts then you want to proceed with
proceed with the <citetitle>Administrator's Guide</citetitle>, the &cite-admin;, which contains information about how to set up
which contains information about how to set up the database the database server, database users, and authentication.
server, database users, and authentication.
</para> </para>
</listitem> </listitem>
@ -1431,8 +1429,7 @@ kill `cat /usr/local/pgsql/data/postmaster.pid`
<para> <para>
Usually, you will want to modify your computer so that it will Usually, you will want to modify your computer so that it will
automatically start the database server whenever it boots. Some automatically start the database server whenever it boots. Some
suggestions for this are in the <citetitle>Administrator's suggestions for this are in the &cite-admin;.
Guide</citetitle>.
</para> </para>
</listitem> </listitem>
@ -1441,7 +1438,7 @@ kill `cat /usr/local/pgsql/data/postmaster.pid`
Run the regression tests against the installed server (using the Run the regression tests against the installed server (using the
sequential test method). If you didn't run the tests before sequential test method). If you didn't run the tests before
installation, you should definitely do it now. This is also installation, you should definitely do it now. This is also
explained in the <citetitle>Administrator's Guide</citetitle>. explained in the &cite-admin;.
</para> </para>
</listitem> </listitem>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/Attic/jdbc.sgml,v 1.41 2002/11/15 03:11:16 momjian Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/jdbc.sgml,v 1.42 2003/01/19 00:13:28 momjian Exp $
--> -->
<chapter id="jdbc"> <chapter id="jdbc">
@ -124,9 +124,9 @@ java Finder
<para> <para>
Also, the client authentication setup in the Also, the client authentication setup in the
<filename>pg_hba.conf</filename> file may need to be configured. <filename>pg_hba.conf</filename> file may need to be configured.
Refer to the <citetitle>Administrator's Guide</citetitle> for Refer to the &cite-admin; for details. The
details. The <acronym>JDBC</acronym> Driver supports the trust, <acronym>JDBC</acronym> Driver supports the trust, ident,
ident, password, md5, and crypt authentication methods. password, md5, and crypt authentication methods.
</para> </para>
</sect2> </sect2>
</sect1> </sect1>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/libpq.sgml,v 1.105 2003/01/07 04:25:29 momjian Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/libpq.sgml,v 1.106 2003/01/19 00:13:28 momjian Exp $
--> -->
<chapter id="libpq"> <chapter id="libpq">
@ -952,7 +952,7 @@ strings overlap.
escape a character, it is converted into the three digit octal number escape a character, it is converted into the three digit octal number
equal to the decimal <acronym>ASCII</acronym> value, and preceded by equal to the decimal <acronym>ASCII</acronym> value, and preceded by
two backslashes. The single quote (') and backslash (\) characters have two backslashes. The single quote (') and backslash (\) characters have
special alternate escape sequences. See the <citetitle>User's Guide</citetitle> special alternate escape sequences. See the &cite-user;
for more information. <function>PQescapeBytea for more information. <function>PQescapeBytea
</function> performs this operation, escaping only the minimally </function> performs this operation, escaping only the minimally
required characters. required characters.

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/notation.sgml,v 1.20 2002/10/24 17:48:54 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/notation.sgml,v 1.21 2003/01/19 00:13:28 momjian Exp $
--> -->
<sect1 id="notation"> <sect1 id="notation">
@ -18,7 +18,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/notation.sgml,v 1.20 2002/10/24 17:48:54 pe
We use <filename>/usr/local/pgsql/</filename> as the root We use <filename>/usr/local/pgsql/</filename> as the root
directory of the installation and <filename>/usr/local/pgsql/data</filename> directory of the installation and <filename>/usr/local/pgsql/data</filename>
as the directory with the database files. These directories may vary 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>. on your site, details can be derived in the &cite-admin;.
</para> </para>
<para> <para>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/plpgsql.sgml,v 1.13 2003/01/15 16:40:24 momjian Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/plpgsql.sgml,v 1.14 2003/01/19 00:13:28 momjian Exp $
--> -->
<chapter id="plpgsql"> <chapter id="plpgsql">
@ -230,7 +230,7 @@ END;
<para> <para>
Developing in <application>PL/pgSQL</application> is pretty Developing in <application>PL/pgSQL</application> is pretty
straight forward, especially if you have developed in other straight forward, especially if you have developed in other
database procedural languages, such as Oracle's database procedural languages, such as <productname>Oracle</>'s
<application>PL/SQL</application>. One good way to develop in <application>PL/SQL</application>. One good way to develop in
<application>PL/pgSQL</> is to simply use the text editor of your <application>PL/pgSQL</> is to simply use the text editor of your
choice to create your functions, and in another window, use choice to create your functions, and in another window, use
@ -1155,84 +1155,109 @@ GET DIAGNOSTICS <replaceable>variable</replaceable> = <replaceable>item</replace
<title>Returning from a function</title> <title>Returning from a function</title>
<para> <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> <synopsis>
RETURN <replaceable>expression</replaceable>; RETURN <replaceable>expression</replaceable>;
</synopsis> </synopsis>
<command>RETURN</command> with an expression is used to return <command>RETURN</command> with an expression is used to return
from a <application>PL/pgSQL</> function that does not return a from a <application>PL/pgSQL</> function that does not return a
set. The function terminates and the value of set. The function terminates and the value of
<replaceable>expression</replaceable> is returned to the caller. <replaceable>expression</replaceable> is returned to the caller.
</para> </para>
<para> <para>
To return a composite (row) value, you must write a record or row To return a composite (row) value, you must write a record or row
variable as the <replaceable>expression</replaceable>. When variable as the <replaceable>expression</replaceable>. When
returning a scalar type, any expression can be used. returning a scalar type, any expression can be used.
The expression's result will be automatically cast into the The expression's result will be automatically cast into the
function's return type as described for assignments. function's return type as described for assignments.
(If you have declared the function to return <type>void</>, </para>
then the expression can be omitted, and will be ignored in any case.)
</para>
<para> <para>
The return value of a function cannot be left undefined. If The return value of a function cannot be left undefined. If
control reaches the end of the top-level block of the function control reaches the end of the top-level block of the function
without hitting a <command>RETURN</command> statement, a run-time without hitting a <command>RETURN</command> statement, a run-time
error will occur. error will occur. Note that if you have declared the function to
</para> 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>
<para> <sect3>
When a <application>PL/pgSQL</> function is declared to return <title><command>RETURN NEXT</></title>
<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> <synopsis>
RETURN NEXT <replaceable>expression</replaceable>; RETURN NEXT <replaceable>expression</replaceable>;
</synopsis> </synopsis>
<command>RETURN NEXT</command> does not actually return from the <para>
function; it simply saves away the value of the expression (or When a <application>PL/pgSQL</> function is declared to return
record or row variable, as appropriate for the data type being <literal>SETOF</literal> <replaceable>sometype</>, the procedure
returned). Execution then continues with the next statement in to follow is slightly different. In that case, the individual
the <application>PL/pgSQL</> function. As successive items to return are specified in <command>RETURN NEXT</command>
<command>RETURN NEXT</command> commands are executed, the result commands, and then a final <command>RETURN</command> command
set is built up. A final <command>RETURN</command>, which need with no arguments is used to indicate that the function has
have no argument, causes control to exit the function. finished executing. <command>RETURN NEXT</command> can be used
</para> 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:
<note> <programlisting>
<para> SELECT * FROM some_func();
The current implementation of <command>RETURN NEXT</command> for </programlisting>
<application>PL/pgSQL</> stores the entire result set before
returning from the function, as discussed above. That means that That is, the function is used as a table source in a FROM
if a <application>PL/pgSQL</> function produces a very large result set, clause.
performance may be poor: data will be written to disk to avoid </para>
memory exhaustion, but the function itself will not return until
the entire result set has been generated. A future version of <para>
<application>PL/pgSQL</> may allow users to allow users to define set-returning <command>RETURN NEXT</command> does not actually return from the
functions that do not have this limitation. Currently, the point function; it simply saves away the value of the expression (or
at which data begins being written to disk is controlled by the record or row variable, as appropriate for the data type being
<varname>SORT_MEM</> configuration variable. Administrators who returned). Execution then continues with the next statement in
have sufficient memory to store larger result sets in memory the <application>PL/pgSQL</> function. As successive
should consider increasing this parameter. <command>RETURN NEXT</command> commands are executed, the result
</para> set is built up. A final <command>RETURN</command>, which should
</note> have no argument, causes control to exit the function.
</sect2> </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"> <sect2 id="plpgsql-conditionals">
<title>Conditionals</title> <title>Conditionals</title>
@ -1267,9 +1292,11 @@ IF <replaceable>boolean-expression</replaceable> THEN
END IF; END IF;
</synopsis> </synopsis>
IF-THEN statements are the simplest form of IF. The <literal>IF-THEN</literal> statements are the simplest form of
statements between THEN and END IF will be executed if <literal>IF</literal>. The statements between
the condition is true. Otherwise, they are skipped. <literal>THEN</literal> and <literal>END IF</literal> will be
executed if the condition is true. Otherwise, they are
skipped.
<programlisting> <programlisting>
IF v_user_id &lt;&gt; 0 THEN IF v_user_id &lt;&gt; 0 THEN
@ -1291,9 +1318,10 @@ ELSE
END IF; END IF;
</synopsis> </synopsis>
IF-THEN-ELSE statements add to IF-THEN by letting you <literal>IF-THEN-ELSE</literal> statements add to
specify an alternative set of statements that should be executed if <literal>IF-THEN</literal> by letting you specify an
the condition evaluates to FALSE. alternative set of statements that should be executed if the
condition evaluates to FALSE.
<programlisting> <programlisting>
IF parentid IS NULL or parentid = '''' IF parentid IS NULL or parentid = ''''
@ -1311,14 +1339,16 @@ ELSE
return ''f''; return ''f'';
END IF; END IF;
</programlisting> </programlisting>
</para> </para>
</sect3> </sect3>
<sect3> <sect3>
<title><literal>IF-THEN-ELSE IF</></title> <title><literal>IF-THEN-ELSE IF</></title>
<para> <para>
IF statements can be nested, as in the following example: <literal>IF</literal> statements can be nested, as in the
following example:
<programlisting> <programlisting>
IF demo_row.sex = ''m'' THEN IF demo_row.sex = ''m'' THEN
pretty_sex := ''man''; pretty_sex := ''man'';
@ -1331,12 +1361,13 @@ END IF;
</para> </para>
<para> <para>
When you use this form, you are actually When you use this form, you are actually nesting an
nesting an IF statement inside the ELSE part of an outer IF <literal>IF</literal> statement inside the
statement. Thus you need one END IF statement for each <literal>ELSE</literal> part of an outer <literal>IF</literal>
nested IF and one for the parent IF-ELSE. statement. Thus you need one <literal>END IF</literal>
This is workable but grows tedious when there are many statement for each nested IF and one for the parent
alternatives to be checked. <literal>IF-ELSE</literal>. This is workable but grows
tedious when there are many alternatives to be checked.
</para> </para>
</sect3> </sect3>
@ -1384,7 +1415,7 @@ END IF;
</para> </para>
<para> <para>
The final ELSE section is optional. The final <literal>ELSE</literal> statement is optional.
</para> </para>
</sect3> </sect3>
@ -1399,10 +1430,10 @@ END IF;
a series of commands. a series of commands.
</para> </para>
<sect3> <sect3>
<title>LOOP</title> <title>LOOP</title>
<para> <para>
<synopsis> <synopsis>
<optional>&lt;&lt;label&gt;&gt;</optional> <optional>&lt;&lt;label&gt;&gt;</optional>
LOOP LOOP
@ -1410,13 +1441,13 @@ LOOP
END LOOP; END LOOP;
</synopsis> </synopsis>
LOOP defines an unconditional loop that is repeated indefinitely LOOP defines an unconditional loop that is repeated indefinitely
until terminated by an EXIT or RETURN statement. until terminated by an EXIT or <command>RETURN</command>
The optional label can be used by statement. The optional label can be used by EXIT statements in
EXIT statements in nested loops to specify which level of nested loops to specify which level of nesting should be
nesting should be terminated. terminated.
</para> </para>
</sect3> </sect3>
<sect3> <sect3>
<title>EXIT</title> <title>EXIT</title>
@ -1547,9 +1578,9 @@ FOR <replaceable>record | row</replaceable> IN <replaceable>select_query</replac
<replaceable>statements</replaceable> <replaceable>statements</replaceable>
END LOOP; END LOOP;
</synopsis> </synopsis>
The record or row variable is successively assigned all the rows The record or row variable is successively assigned all the rows
resulting from the SELECT query and the loop body is executed resulting from the <command>SELECT</command> query and the loop
for each row. Here is an example: body is executed for each row. Here is an example:
</para> </para>
<para> <para>
@ -1639,11 +1670,12 @@ END LOOP;
<synopsis> <synopsis>
<replaceable>name</replaceable> CURSOR <optional> ( <replaceable>arguments</replaceable> ) </optional> FOR <replaceable>select_query</replaceable> ; <replaceable>name</replaceable> CURSOR <optional> ( <replaceable>arguments</replaceable> ) </optional> FOR <replaceable>select_query</replaceable> ;
</synopsis> </synopsis>
(<literal>FOR</> may be replaced by <literal>IS</> for Oracle (<literal>FOR</> may be replaced by <literal>IS</> for
compatibility.) <replaceable>arguments</replaceable>, if any, <productname>Oracle</productname> compatibility.)
are a comma-separated list of <replaceable>name</replaceable> <replaceable>arguments</replaceable>, if any, are a
<replaceable>datatype</replaceable> pairs that define names to comma-separated list of <replaceable>name</replaceable>
be replaced by parameter values in the given query. The actual <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, values to substitute for these names will be specified later,
when the cursor is opened. when the cursor is opened.
</para> </para>
@ -1685,13 +1717,14 @@ DECLARE
OPEN <replaceable>unbound-cursor</replaceable> FOR SELECT ...; OPEN <replaceable>unbound-cursor</replaceable> FOR SELECT ...;
</synopsis> </synopsis>
The cursor variable is opened and given the specified query The cursor variable is opened and given the specified query to
to execute. The cursor cannot be open already, and it must execute. The cursor cannot be open already, and it must have been
have been declared as an unbound cursor (that is, as a simple declared as an unbound cursor (that is, as a simple
<type>refcursor</> variable). The SELECT query is treated <type>refcursor</> variable). The <command>SELECT</command> query
in the same way as other SELECT statements in <application>PL/pgSQL</>: is treated in the same way as other <command>SELECT</command>
<application>PL/pgSQL</> variable names are substituted, statements in <application>PL/pgSQL</>: <application>PL/pgSQL</>
and the query plan is cached for possible re-use. variable names are substituted, and the query plan is cached for
possible re-use.
<programlisting> <programlisting>
OPEN curs1 FOR SELECT * FROM foo WHERE key = mykey; OPEN curs1 FOR SELECT * FROM foo WHERE key = mykey;
@ -1799,8 +1832,8 @@ FETCH curs2 INTO foo,bar,baz;
CLOSE <replaceable>cursor</replaceable>; CLOSE <replaceable>cursor</replaceable>;
</synopsis> </synopsis>
CLOSE closes the Portal underlying an open cursor. <command>CLOSE</command> closes the Portal underlying an open
This can be used to release resources earlier than end of cursor. This can be used to release resources earlier than end of
transaction, or to free up the cursor variable to be opened again. transaction, or to free up the cursor variable to be opened again.
<programlisting> <programlisting>
@ -1815,11 +1848,12 @@ CLOSE curs1;
<para> <para>
<application>PL/pgSQL</> functions can return cursors to the <application>PL/pgSQL</> functions can return cursors to the
caller. This is used to return multiple rows or columns from the caller. This is used to return multiple rows or columns from
function. The function opens the cursor and returns the cursor the function. The function opens the cursor and returns the
name to the caller. The caller can then FETCH rows from the cursor name to the caller. The caller can then
cursor. The cursor can be closed by the caller, or it will be <command>FETCH</command> rows from the cursor. The cursor can
closed automatically when the transaction closes. be closed by the caller, or it will be closed automatically
when the transaction closes.
</para> </para>
@ -1879,7 +1913,8 @@ COMMIT;
<title>Errors and Messages</title> <title>Errors and Messages</title>
<para> <para>
Use the RAISE statement to report messages and raise errors. Use the <command>RAISE</command> statement to report messages and
raise errors.
<synopsis> <synopsis>
RAISE <replaceable class="parameter">level</replaceable> '<replaceable class="parameter">format</replaceable>' <optional>, <replaceable class="parameter">variable</replaceable> <optional>...</optional></optional>; RAISE <replaceable class="parameter">level</replaceable> '<replaceable class="parameter">format</replaceable>' <optional>, <replaceable class="parameter">variable</replaceable> <optional>...</optional></optional>;
@ -1896,8 +1931,7 @@ RAISE <replaceable class="parameter">level</replaceable> '<replaceable class="pa
written to the server log, or both is controlled by the written to the server log, or both is controlled by the
<option>LOG_MIN_MESSAGES</option> and <option>LOG_MIN_MESSAGES</option> and
<option>CLIENT_MIN_MESSAGES</option> configuration variables. See <option>CLIENT_MIN_MESSAGES</option> configuration variables. See
the <citetitle>PostgreSQL Administrator's Guide</citetitle> for more the &cite-admin; for more information.
information.
</para> </para>
<para> <para>
@ -2029,9 +2063,9 @@ RAISE EXCEPTION ''Inexistent ID --> %'',user_id;
<term><varname>TG_LEVEL</varname></term> <term><varname>TG_LEVEL</varname></term>
<listitem> <listitem>
<para> <para>
Data type <type>text</type>; a string of either Data type <type>text</type>; a string of either
<literal>ROW</literal> or <literal>STATEMENT</literal> depending on the <literal>ROW</literal> or <literal>STATEMENT</literal>
trigger's definition. depending on the trigger's definition.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -2040,10 +2074,10 @@ RAISE EXCEPTION ''Inexistent ID --> %'',user_id;
<term><varname>TG_OP</varname></term> <term><varname>TG_OP</varname></term>
<listitem> <listitem>
<para> <para>
Data type <type>text</type>; a string of Data type <type>text</type>; a string of
<literal>INSERT</literal>, <literal>UPDATE</literal> <literal>INSERT</literal>, <literal>UPDATE</literal> or
or <literal>DELETE</literal> telling <literal>DELETE</literal> telling for which operation the
for which operation the trigger is fired. trigger is fired.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -2282,7 +2316,7 @@ CREATE FUNCTION c_overpaid (EMP, INTEGER) RETURNS BOOLEAN AS '
--> -->
</sect1info> </sect1info>
<title>Porting from Oracle PL/SQL</title> <title>Porting from <productname>Oracle</productname> PL/SQL</title>
<indexterm zone="plpgsql-porting"> <indexterm zone="plpgsql-porting">
<primary>Oracle</primary> <primary>Oracle</primary>
@ -2300,7 +2334,7 @@ CREATE FUNCTION c_overpaid (EMP, INTEGER) RETURNS BOOLEAN AS '
</note> </note>
<para> <para>
This section explains differences between Oracle's PL/SQL and 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 <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 port applications from Oracle to <productname>PostgreSQL</>. Most of the code here
is from the <ulink url="http://www.arsdigita.com">ArsDigita</ulink> is from the <ulink url="http://www.arsdigita.com">ArsDigita</ulink>
@ -2322,7 +2356,8 @@ CREATE FUNCTION c_overpaid (EMP, INTEGER) RETURNS BOOLEAN AS '
<title>Main Differences</title> <title>Main Differences</title>
<para> <para>
Some things you should keep in mind when porting from Oracle to <productname>PostgreSQL</>: Some things you should keep in mind when porting from
<productname>Oracle</productname> to <productname>PostgreSQL</>:
<itemizedlist> <itemizedlist>
<listitem> <listitem>
@ -2479,7 +2514,7 @@ a_output := a_output || '' if v_'' ||
</title> </title>
<para> <para>
Here is an Oracle function: Here is an <productname>Oracle</productname> function:
<programlisting> <programlisting>
CREATE OR REPLACE FUNCTION cs_fmt_browser_version(v_name IN varchar, v_version IN varchar) CREATE OR REPLACE FUNCTION cs_fmt_browser_version(v_name IN varchar, v_version IN varchar)
RETURN varchar IS RETURN varchar IS
@ -2508,12 +2543,13 @@ SHOW ERRORS;
<listitem> <listitem>
<para> <para>
Oracle can have <literal>IN</literal>, <literal>OUT</literal>, <productname>Oracle</productname> can have
and <literal>INOUT</literal> parameters passed to functions. <literal>IN</literal>, <literal>OUT</literal>, and
The <literal>INOUT</literal>, for example, means that the <literal>INOUT</literal> parameters passed to functions. The
parameter will receive a value and return another. <productname>PostgreSQL</> <literal>INOUT</literal>, for example, means that the
only has <quote>IN</quote> parameters and functions can return parameter will receive a value and return
only a single value. another. <productname>PostgreSQL</> only has <quote>IN</quote>
parameters and functions can return only a single value.
</para> </para>
</listitem> </listitem>
@ -2644,11 +2680,11 @@ END;
<example> <example>
<title> <title>
A Procedure with a lot of String Manipulation and OUT Parameters A Procedure with a lot of String Manipulation and <literal>OUT</> Parameters
</title> </title>
<para> <para>
The following Oracle PL/SQL procedure is used to parse a URL and 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 return several elements (host, path and query). It is an
procedure because in <application>PL/pgSQL</application> functions only one value can be returned procedure because in <application>PL/pgSQL</application> functions only one value can be returned
(see <xref linkend="plpgsql-porting-procedures">). In (see <xref linkend="plpgsql-porting-procedures">). In
@ -2738,7 +2774,7 @@ END;
so you can work around it using a combination of other functions. so you can work around it using a combination of other functions.
I got tired of doing this and created my own I got tired of doing this and created my own
<function>instr</function> functions that behave exactly like <function>instr</function> functions that behave exactly like
Oracle's (it makes life easier). See the <xref <productname>Oracle</productname>'s (it makes life easier). See the <xref
linkend="plpgsql-porting-appendix"> for the code. linkend="plpgsql-porting-appendix"> for the code.
</para> </para>
</note> </note>
@ -2750,9 +2786,10 @@ END;
</title> </title>
<para> <para>
Oracle procedures give a little more flexibility to the developer <productname>Oracle</productname> procedures give a little more
because nothing needs to be explicitly returned, but it can be flexibility to the developer because nothing needs to be
through the use of <literal>INOUT</> or <literal>OUT</> parameters. explicitly returned, but it can be through the use of
<literal>INOUT</> or <literal>OUT</> parameters.
</para> </para>
<para> <para>
@ -2890,12 +2927,13 @@ END;
</note> </note>
<para> <para>
Packages are a way Oracle gives you to encapsulate PL/SQL Packages are a way <productname>Oracle</productname> gives you to
statements and functions into one entity, like Java classes, where encapsulate PL/SQL statements and functions into one entity, like
you define methods and objects. You can access these Java classes, where you define methods and objects. You can access
objects/methods with a <quote><literal>.</literal></quote> these objects/methods with a <quote><literal>.</literal></quote>
(dot). Here is an example of an Oracle package from ACS 4 (the (dot). Here is an example of an <productname>Oracle</productname>
<ulink url="http://www.arsdigita.com/doc/">ArsDigita Community package from ACS 4 (the <ulink
url="http://www.arsdigita.com/doc/">ArsDigita Community
System</ulink>): System</ulink>):
<programlisting> <programlisting>
@ -2924,10 +2962,11 @@ show errors
</para> </para>
<para> <para>
We port this to <productname>PostgreSQL</> by creating the different objects of We port this to <productname>PostgreSQL</> by creating the
the Oracle package as functions with a standard naming different objects of the <productname>Oracle</productname> package
convention. We have to pay attention to some other details, like as functions with a standard naming convention. We have to pay
the lack of default parameters in <productname>PostgreSQL</> functions. The above attention to some other details, like the lack of default
parameters in <productname>PostgreSQL</> functions. The above
package would become something like this: package would become something like this:
<programlisting> <programlisting>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_database.sgml,v 1.3 2002/05/17 01:19:16 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_database.sgml,v 1.4 2003/01/19 00:13:29 momjian Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -71,8 +71,8 @@ ALTER DATABASE <replaceable class="PARAMETER">name</replaceable> RESET <replacea
<para> <para>
See <xref linkend="sql-set" endterm="sql-set-title"> and the See <xref linkend="sql-set" endterm="sql-set-title"> and the
<citetitle>Administrator's Guide</citetitle> for more &cite-admin; for more information about allowed variable names
information about allowed variable names and values. and values.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_table.sgml,v 1.53 2002/12/16 19:08:25 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_table.sgml,v 1.54 2003/01/19 00:13:29 momjian Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -399,9 +399,8 @@ VACUUM FULL table;
<para> <para>
Refer to <command>CREATE TABLE</command> for a further description Refer to <command>CREATE TABLE</command> for a further description
of valid arguments. of valid arguments. The &cite-user; has further information on
The <citetitle>PostgreSQL User's Guide</citetitle> has further inheritance.
information on inheritance.
</para> </para>
</refsect2> </refsect2>
</refsect1> </refsect1>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_user.sgml,v 1.23 2002/09/21 18:32:54 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_user.sgml,v 1.24 2003/01/19 00:13:29 momjian Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -145,8 +145,8 @@ ALTER USER <replaceable class="PARAMETER">username</replaceable> RESET <replacea
<para> <para>
See <xref linkend="sql-set" endterm="sql-set-title"> and the See <xref linkend="sql-set" endterm="sql-set-title"> and the
<citetitle>Administrator's Guide</citetitle> for more &cite-admin; for more information about allowed variable names
information about allowed variable names and values. and values.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/analyze.sgml,v 1.9 2002/07/31 17:19:51 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/analyze.sgml,v 1.10 2003/01/19 00:13:29 momjian Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -152,8 +152,7 @@ ANALYZE [ VERBOSE ] [ <replaceable class="PARAMETER">table</replaceable> [ (<rep
<command>ANALYZE</command> deems them uninteresting (for example, in <command>ANALYZE</command> deems them uninteresting (for example, in
a unique-key column, there are no common values) or if the column a unique-key column, there are no common values) or if the column
data type does not support the appropriate operators. There is more data type does not support the appropriate operators. There is more
information about the statistics in the <citetitle>User's information about the statistics in the &cite-user;.
Guide</citetitle>.
</para> </para>
<para> <para>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/begin.sgml,v 1.20 2002/09/21 18:32:54 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/begin.sgml,v 1.21 2003/01/19 00:13:29 momjian Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -121,8 +121,7 @@ WARNING: BEGIN: already a transaction in progress
<command>SET TRANSACTION ISOLATION LEVEL SERIALIZABLE</command> <command>SET TRANSACTION ISOLATION LEVEL SERIALIZABLE</command>
just after <command>BEGIN</command> if you need more rigorous transaction just after <command>BEGIN</command> if you need more rigorous transaction
isolation. (Alternatively, you can change the default transaction isolation. (Alternatively, you can change the default transaction
isolation level; see the <citetitle>PostgreSQL Administrator's isolation level; see the &cite-admin; for details.)
Guide</citetitle> for details.)
In SERIALIZABLE mode queries will see only changes committed before In SERIALIZABLE mode queries will see only changes committed before
the entire the entire
transaction began (actually, before execution of the first <acronym>DML</> statement transaction began (actually, before execution of the first <acronym>DML</> statement
@ -161,7 +160,7 @@ WARNING: BEGIN: already a transaction in progress
</para> </para>
<para> <para>
If you turn <literal>autocommit</> mode off, then <command>BEGIN</> If you turn <varname>autocommit</> mode off, then <command>BEGIN</>
is not required: any SQL command automatically starts a transaction. is not required: any SQL command automatically starts a transaction.
</para> </para>
</refsect2> </refsect2>

View File

@ -1,4 +1,4 @@
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/ref/checkpoint.sgml,v 1.6 2002/04/21 19:02:39 thomas Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/ref/checkpoint.sgml,v 1.7 2003/01/19 00:13:29 momjian Exp $ -->
<refentry id="sql-checkpoint"> <refentry id="sql-checkpoint">
<refmeta> <refmeta>
@ -34,8 +34,7 @@ CHECKPOINT
A checkpoint is a point in the transaction log sequence at which A checkpoint is a point in the transaction log sequence at which
all data files have been updated to reflect the information in the all data files have been updated to reflect the information in the
log. All data files will be flushed to disk. Refer to the log. All data files will be flushed to disk. Refer to the
<citetitle>PostgreSQL Administrator's Guide</citetitle> for more &cite-admin; for more information about the WAL system.
information about the WAL system.
</para> </para>
<para> <para>
@ -48,7 +47,7 @@ CHECKPOINT
<title>See Also</title> <title>See Also</title>
<para> <para>
<citetitle>PostgreSQL Administrator's Guide</citetitle> &cite-admin;
</para> </para>
</refsect1> </refsect1>
@ -61,3 +60,20 @@ CHECKPOINT
</para> </para>
</refsect1> </refsect1>
</refentry> </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:
-->

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_aggregate.sgml,v 1.22 2002/10/21 04:33:39 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_aggregate.sgml,v 1.23 2003/01/19 00:13:29 momjian Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -271,9 +271,8 @@ CREATE AGGREGATE
Usage Usage
</title> </title>
<para> <para>
Refer to the chapter on aggregate functions Refer to the chapter on aggregate functions in the
in the <citetitle>PostgreSQL Programmer's Guide</citetitle> for &cite-programmer; for complete examples of usage.
complete examples of usage.
</para> </para>
</refsect1> </refsect1>

View File

@ -1,4 +1,4 @@
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_cast.sgml,v 1.7 2002/11/15 03:11:17 momjian Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_cast.sgml,v 1.8 2003/01/19 00:13:29 momjian Exp $ -->
<refentry id="SQL-CREATECAST"> <refentry id="SQL-CREATECAST">
<refmeta> <refmeta>
@ -241,7 +241,7 @@ CREATE CAST (text AS int4) WITH FUNCTION int4(text);
<xref linkend="sql-createfunction" endterm="sql-createfunction-title">, <xref linkend="sql-createfunction" endterm="sql-createfunction-title">,
<xref linkend="sql-createtype" endterm="sql-createtype-title">, <xref linkend="sql-createtype" endterm="sql-createtype-title">,
<xref linkend="sql-dropcast" endterm="sql-dropcast-title">, <xref linkend="sql-dropcast" endterm="sql-dropcast-title">,
<citetitle>PostgreSQL Programmer's Guide</citetitle> &cite-programmer;
</para> </para>
</refsect1> </refsect1>

View File

@ -1,4 +1,4 @@
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_conversion.sgml,v 1.5 2002/11/02 02:33:03 tgl Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_conversion.sgml,v 1.6 2003/01/19 00:13:29 momjian Exp $ -->
<refentry id="SQL-CREATECONVERSION"> <refentry id="SQL-CREATECONVERSION">
<refmeta> <refmeta>
@ -158,7 +158,7 @@ CREATE CONVERSION myconv FOR 'UNICODE' TO 'LATIN1' FROM myfunc;
<para> <para>
<xref linkend="sql-createfunction" endterm="sql-createfunction-title">, <xref linkend="sql-createfunction" endterm="sql-createfunction-title">,
<xref linkend="sql-dropconversion" endterm="sql-dropconversion-title">, <xref linkend="sql-dropconversion" endterm="sql-dropconversion-title">,
<citetitle>PostgreSQL Programmer's Guide</citetitle> &cite-programmer;
</para> </para>
</refsect1> </refsect1>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_database.sgml,v 1.30 2002/11/15 03:11:17 momjian Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_database.sgml,v 1.31 2003/01/19 00:13:29 momjian Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -281,7 +281,7 @@ comment from Olly; response from Thomas...
by specifying its name as the template, this is not (yet) intended as by specifying its name as the template, this is not (yet) intended as
a general-purpose COPY DATABASE facility. a general-purpose COPY DATABASE facility.
We recommend that databases used as templates be treated as read-only. We recommend that databases used as templates be treated as read-only.
See the <citetitle>Administrator's Guide</> for more information. See the &cite-admin; for more information.
</para> </para>
</refsect2> </refsect2>
</refsect1> </refsect1>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_domain.sgml,v 1.9 2002/12/12 20:35:07 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_domain.sgml,v 1.10 2003/01/19 00:13:29 momjian Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -58,7 +58,7 @@ where <replaceable class="PARAMETER">constraint</replaceable> is:
<para> <para>
The underlying data type of the domain. This may include array The underlying data type of the domain. This may include array
specifiers. specifiers.
Refer to the <citetitle>User's Guide</citetitle> for further Refer to the &cite-user; for further
information about data types and arrays. information about data types and arrays.
</para> </para>
</listitem> </listitem>
@ -224,7 +224,7 @@ CREATE TABLE countrylist (id INT4, country country_code);
<simplelist type="inline"> <simplelist type="inline">
<member><xref linkend="sql-dropdomain" endterm="sql-dropdomain-title"></member> <member><xref linkend="sql-dropdomain" endterm="sql-dropdomain-title"></member>
<member><citetitle>PostgreSQL Programmer's Guide</citetitle></member> <member>&cite-programmer;</member>
</simplelist> </simplelist>
</refsect1> </refsect1>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_function.sgml,v 1.43 2002/09/21 18:32:54 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_function.sgml,v 1.44 2003/01/19 00:13:29 momjian Exp $
--> -->
<refentry id="SQL-CREATEFUNCTION"> <refentry id="SQL-CREATEFUNCTION">
@ -281,8 +281,7 @@ CREATE [ OR REPLACE ] FUNCTION <replaceable class="parameter">name</replaceable>
<title>Notes</title> <title>Notes</title>
<para> <para>
Refer to the chapter in the Refer to the chapter in the &cite-programmer;
<citetitle>PostgreSQL Programmer's Guide</citetitle>
on the topic of extending on the topic of extending
<productname>PostgreSQL</productname> via functions <productname>PostgreSQL</productname> via functions
for further information on writing external functions. for further information on writing external functions.
@ -470,7 +469,7 @@ Point * complex_to_point (Complex *z)
<xref linkend="sql-load" endterm="sql-load-title">, <xref linkend="sql-load" endterm="sql-load-title">,
<xref linkend="sql-revoke" endterm="sql-revoke-title">, <xref linkend="sql-revoke" endterm="sql-revoke-title">,
<xref linkend="app-createlang">, <xref linkend="app-createlang">,
<citetitle>PostgreSQL Programmer's Guide</citetitle> &cite-programmer;
</para> </para>
</refsect1> </refsect1>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_group.sgml,v 1.8 2002/04/21 19:02:39 thomas Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_group.sgml,v 1.9 2003/01/19 00:13:29 momjian Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -107,10 +107,10 @@ where <replaceable class="PARAMETER">option</replaceable> can be:
Description Description
</title> </title>
<para> <para>
CREATE GROUP will create a new group in the database installation. <command>CREATE GROUP</command> will create a new group in the
Refer to the <citetitle>Administrator's Guide</citetitle> for information about using groups database installation. Refer to the &cite-admin; for information
for authentication. about using groups for authentication. You must be a database
You must be a database superuser to use this command. superuser to use this command.
</para> </para>
<para> <para>
Use <xref linkend="SQL-ALTERGROUP" endterm="SQL-ALTERGROUP-title"> Use <xref linkend="SQL-ALTERGROUP" endterm="SQL-ALTERGROUP-title">

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_language.sgml,v 1.29 2002/11/21 23:34:43 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_language.sgml,v 1.30 2003/01/19 00:13:29 momjian Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -37,9 +37,8 @@ CREATE [ TRUSTED ] [ PROCEDURAL ] LANGUAGE <replaceable class="parameter">langna
<para> <para>
<command>CREATE LANGUAGE</command> effectively associates the <command>CREATE LANGUAGE</command> effectively associates the
language name with a call handler that is responsible for executing language name with a call handler that is responsible for executing
functions written in the language. Refer to the functions written in the language. Refer to the &cite-programmer;
<citetitle>Programmer's Guide</citetitle> for more information for more information about language call handlers.
about language call handlers.
</para> </para>
<para> <para>
@ -301,7 +300,7 @@ CREATE LANGUAGE plsample
<member><xref linkend="sql-droplanguage" endterm="sql-droplanguage-title"></member> <member><xref linkend="sql-droplanguage" endterm="sql-droplanguage-title"></member>
<member><xref linkend="sql-grant" endterm="sql-grant-title"></member> <member><xref linkend="sql-grant" endterm="sql-grant-title"></member>
<member><xref linkend="sql-revoke" endterm="sql-revoke-title"></member> <member><xref linkend="sql-revoke" endterm="sql-revoke-title"></member>
<member><citetitle>PostgreSQL Programmer's Guide</citetitle></member> <member>&cite-programmer;</member>
</simplelist> </simplelist>
</para> </para>
</refsect1> </refsect1>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_opclass.sgml,v 1.4 2002/10/04 22:19:29 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_opclass.sgml,v 1.5 2003/01/19 00:13:29 momjian Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -224,8 +224,7 @@ CREATE OPERATOR CLASS
<para> <para>
Refer to the chapter on interfacing extensions to indexes in the Refer to the chapter on interfacing extensions to indexes in the
<citetitle>PostgreSQL Programmer's Guide</citetitle> &cite-programmer; for further information.
for further information.
</para> </para>
<refsect2 id="R2-SQL-CREATEOPCLASS-3"> <refsect2 id="R2-SQL-CREATEOPCLASS-3">

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_operator.sgml,v 1.32 2002/09/21 18:32:54 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_operator.sgml,v 1.33 2003/01/19 00:13:29 momjian Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -436,8 +436,7 @@ MYBOXES.description === box '((0,0), (1,1))'
Notes Notes
</title> </title>
<para> <para>
Refer to the chapter on operators in the Refer to the chapter on operators in the &cite-user;
<citetitle>PostgreSQL User's Guide</citetitle>
for further information. for further information.
Refer to <command>DROP OPERATOR</command> to delete Refer to <command>DROP OPERATOR</command> to delete
user-defined operators from a database. user-defined operators from a database.

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_sequence.sgml,v 1.29 2002/11/10 00:10:20 momjian Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_sequence.sgml,v 1.30 2003/01/19 00:13:29 momjian Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -256,7 +256,7 @@ ERROR: DefineSequence: MINVALUE (<replaceable class="parameter">min</replaceabl
<function>currval</function> and <function>currval</function> and
<function>setval</function> <function>setval</function>
to operate on the sequence. These functions are documented in to operate on the sequence. These functions are documented in
the <citetitle>User's Guide</citetitle>. the &cite-user;.
</para> </para>
<para> <para>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_table.sgml,v 1.60 2002/12/16 19:08:25 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_table.sgml,v 1.61 2003/01/19 00:13:29 momjian Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -147,8 +147,8 @@ and <replaceable class="PARAMETER">table_constraint</replaceable> is:
<listitem> <listitem>
<para> <para>
The data type of the column. This may include array specifiers. The data type of the column. This may include array specifiers.
Refer to the <citetitle>User's Guide</citetitle> for further Refer to the &cite-user; for further information about data
information about data types and arrays. types and arrays.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_trigger.sgml,v 1.31 2002/12/17 17:41:30 momjian Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_trigger.sgml,v 1.32 2003/01/19 00:13:29 momjian Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -202,9 +202,8 @@ CREATE TRIGGER
</para> </para>
<para> <para>
Refer to the chapters on SPI and Triggers in the Refer to the chapters on SPI and Triggers in the &cite-programmer;
<citetitle>PostgreSQL Programmer's Guide</citetitle> for more for more information.
information.
</para> </para>
</refsect1> </refsect1>
@ -349,7 +348,7 @@ CREATE TABLE distributors (
<member><xref linkend="sql-createfunction" endterm="sql-createfunction-title"></member> <member><xref linkend="sql-createfunction" endterm="sql-createfunction-title"></member>
<member><xref linkend="sql-altertrigger" endterm="sql-altertrigger-title"></member> <member><xref linkend="sql-altertrigger" endterm="sql-altertrigger-title"></member>
<member><xref linkend="sql-droptrigger" endterm="sql-droptrigger-title"></member> <member><xref linkend="sql-droptrigger" endterm="sql-droptrigger-title"></member>
<member><citetitle>PostgreSQL Programmer's Guide</citetitle></member> <member>&cite-programmer;</member>
</simplelist> </simplelist>
</refsect1> </refsect1>
</refentry> </refentry>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_type.sgml,v 1.37 2002/11/21 23:34:43 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_type.sgml,v 1.38 2003/01/19 00:13:29 momjian Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -468,7 +468,7 @@ CREATE FUNCTION getfoo() RETURNS SETOF compfoo AS 'SELECT fooid, fooname FROM fo
<simplelist type="inline"> <simplelist type="inline">
<member><xref linkend="sql-createfunction" endterm="sql-createfunction-title"></member> <member><xref linkend="sql-createfunction" endterm="sql-createfunction-title"></member>
<member><xref linkend="sql-droptype" endterm="sql-droptype-title"></member> <member><xref linkend="sql-droptype" endterm="sql-droptype-title"></member>
<member><citetitle>PostgreSQL Programmer's Guide</citetitle></member> <member>&cite-programmer;</member>
</simplelist> </simplelist>
</refsect1> </refsect1>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_user.sgml,v 1.23 2002/02/27 21:14:53 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_user.sgml,v 1.24 2003/01/19 00:13:29 momjian Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -34,10 +34,9 @@ where <replaceable class="PARAMETER">option</replaceable> can be:
<para> <para>
<command>CREATE USER</command> will add a new user to an instance <command>CREATE USER</command> will add a new user to an instance
of <productname>PostgreSQL</productname>. Refer to the of <productname>PostgreSQL</productname>. Refer to the &cite-admin;
<citetitle>Administrator's Guide</citetitle> for information about for information about managing users and authentication. You must
managing users and authentication. You must be a database be a database superuser to use this command.
superuser to use this command.
</para> </para>
<refsect2> <refsect2>
@ -102,12 +101,11 @@ where <replaceable class="PARAMETER">option</replaceable> can be:
</para> </para>
<para> <para>
See the chapter on client authentication in the See the chapter on client authentication in the &cite-admin;
<citetitle>Administrator's Guide</citetitle> for details on for details on how to set up authentication mechanisms. Note
how to set up authentication mechanisms. Note that older that older clients may lack support for the MD5 authentication
clients may lack support for the MD5 authentication mechanism mechanism that is needed to work with passwords that are
that is needed to work with passwords that are stored stored encrypted.
encrypted.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/drop_aggregate.sgml,v 1.19 2002/07/12 18:43:12 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/drop_aggregate.sgml,v 1.20 2003/01/19 00:13:29 momjian Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -47,10 +47,7 @@ DROP AGGREGATE <replaceable class="PARAMETER">name</replaceable> ( <replaceable
<para> <para>
The input data type of the aggregate function, The input data type of the aggregate function,
or <literal>*</literal> if the function accepts any input type. or <literal>*</literal> if the function accepts any input type.
(Refer to the <citetitle>PostgreSQL User's Guide</citetitle> for (Refer to the &cite-user; for further information about data types.)
further information about data types.)
<comment>This should become a cross-reference rather than a
hard-coded chapter number</comment>
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/ecpg-ref.sgml,v 1.23 2002/11/15 03:11:18 momjian Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/ecpg-ref.sgml,v 1.24 2003/01/19 00:13:29 momjian Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -49,7 +49,7 @@ PostgreSQL documentation
<para> <para>
This reference page does not describe the embedded SQL language. This reference page does not describe the embedded SQL language.
See the &cite-programmer; for that. See the &cite-programmer; for more information on that topic.
</para> </para>
</refsect1> </refsect1>
@ -196,8 +196,8 @@ cc -o prog1 prog1.o -L/usr/local/pgsql/lib -lecpg
<title>See Also</title> <title>See Also</title>
<para> <para>
<citetitle>PostgreSQL Programmer's Guide</citetitle> for a more &cite-programmer; for a more detailed description of the embedded
detailed description of the embedded SQL interface SQL interface
</para> </para>
</refsect1> </refsect1>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/execute.sgml,v 1.1 2002/08/27 04:55:07 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/execute.sgml,v 1.2 2003/01/19 00:13:29 momjian Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -21,7 +21,7 @@ PostgreSQL documentation
<date>2002-08-12</date> <date>2002-08-12</date>
</refsynopsisdivinfo> </refsynopsisdivinfo>
<synopsis> <synopsis>
EXECUTE <replaceable class="PARAMETER">plan_name</replaceable> [ (<replaceable class="PARAMETER">parameter</replaceable> [, ...] ) ] EXECUTE <replaceable class="PARAMETER">plan_name</replaceable> [ (<replaceable class="PARAMETER">parameter</replaceable> [, ...] ) ] [ INTO [ TEMPORARY | TEMP ] <replaceable class="PARAMETER">table</replaceable> ]
</synopsis> </synopsis>
<refsect2 id="R2-SQL-EXECUTE-1"> <refsect2 id="R2-SQL-EXECUTE-1">
@ -42,16 +42,28 @@ PostgreSQL documentation
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>
<term><replaceable class="PARAMETER">parameter</replaceable></term> <term><replaceable class="PARAMETER">parameter</replaceable></term>
<listitem> <listitem>
<para> <para>
The actual value of a parameter to the prepared query. The actual value of a parameter to the prepared query. This
This must be an expression yielding a value of a type must be an expression yielding a value of a type compatible
compatible with with the data-type specified for this parameter position in
the data-type specified for this parameter position in the the <command>PREPARE</command> statement that created the
<command>PREPARE</command> statement that created the prepared prepared query.
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> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -85,6 +97,13 @@ PostgreSQL documentation
name of a prepared query must be unique within a database session. name of a prepared query must be unique within a database session.
</para> </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> <para>
For more information on the creation and usage of prepared queries, For more information on the creation and usage of prepared queries,
see <xref linkend="sql-prepare" endterm="sql-prepare-title">. see <xref linkend="sql-prepare" endterm="sql-prepare-title">.

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/explain.sgml,v 1.21 2002/11/15 03:11:18 momjian Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/explain.sgml,v 1.22 2003/01/19 00:13:29 momjian Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -87,9 +87,10 @@ EXPLAIN [ ANALYZE ] [ VERBOSE ] <replaceable class="PARAMETER">query</replaceabl
<note> <note>
<para> <para>
Prior to <productname>PostgreSQL</productname> 7.3, the query plan Prior to <productname>PostgreSQL</productname> 7.3, the query
was emitted in the form of a NOTICE message. Now it appears as a plan was emitted in the form of a <literal>NOTICE</literal>
query result (formatted like a table with a single text column). message. Now it appears as a query result (formatted like a
table with a single text column).
</para> </para>
</note> </note>
</refsect2> </refsect2>
@ -127,12 +128,26 @@ EXPLAIN [ ANALYZE ] [ VERBOSE ] <replaceable class="PARAMETER">query</replaceabl
costs to estimate which plan is really the cheapest. costs to estimate which plan is really the cheapest.
</para> </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> <para>
The ANALYZE option causes the query to be actually executed, not only The ANALYZE option causes the query to be actually executed, not only
planned. The total elapsed time expended within each plan node (in planned. The total elapsed time expended within each plan node (in
milliseconds) and total number of rows it actually returned are added to milliseconds) and total number of rows it actually returned are added to
the display. This is useful for seeing whether the planner's estimates the display. This is useful for seeing whether the planner's estimates
are close to reality. are close to the actual performance of the query.
</para> </para>
<caution> <caution>
@ -171,8 +186,7 @@ ROLLBACK;
<para> <para>
There is only sparse documentation on the optimizer's use of cost There is only sparse documentation on the optimizer's use of cost
information in <productname>PostgreSQL</productname>. information in <productname>PostgreSQL</productname>.
Refer to the <citetitle>User's Guide</citetitle> and Refer to the &cite-user; and &cite-programmer; for more information.
<citetitle>Programmer's Guide</citetitle> for more information.
</para> </para>
</refsect2> </refsect2>
</refsect1> </refsect1>
@ -233,7 +247,12 @@ EXPLAIN SELECT sum(i) FROM foo WHERE i &lt; 10;
<para> <para>
Note that the specific numbers shown, and even the selected query Note that the specific numbers shown, and even the selected query
strategy, may vary between <productname>PostgreSQL</productname> strategy, may vary between <productname>PostgreSQL</productname>
releases due to planner improvements. 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> </para>
</refsect1> </refsect1>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/initdb.sgml,v 1.23 2002/10/11 23:03:48 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/initdb.sgml,v 1.24 2003/01/19 00:13:29 momjian Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -253,7 +253,7 @@ PostgreSQL documentation
<simplelist type="inline"> <simplelist type="inline">
<member><xref linkend="app-postgres"></member> <member><xref linkend="app-postgres"></member>
<member><xref linkend="app-postmaster"></member> <member><xref linkend="app-postmaster"></member>
<member><citetitle>PostgreSQL Administrator's Guide</citetitle></member> <member>&cite-admin;</member>
</simplelist> </simplelist>
</refsect1> </refsect1>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/Attic/initlocation.sgml,v 1.17 2002/10/11 23:03:48 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/Attic/initlocation.sgml,v 1.18 2003/01/19 00:13:29 momjian Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -69,7 +69,7 @@ PostgreSQL documentation
<title>See Also</title> <title>See Also</title>
<simplelist type="inline"> <simplelist type="inline">
<member><citetitle>PostgreSQL Administrator's Guide</citetitle></member> <member>&cite-admin;</member>
</simplelist> </simplelist>
</refsect1> </refsect1>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/insert.sgml,v 1.19 2002/09/21 18:32:54 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/insert.sgml,v 1.20 2003/01/19 00:13:29 momjian Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -216,8 +216,7 @@ INSERT INTO films SELECT * FROM tmp;
</para> </para>
<para> <para>
Insert into arrays (refer to the Insert into arrays (refer to the &cite-user; for further
<citetitle>PostgreSQL User's Guide</citetitle> for further
information about arrays): information about arrays):
<programlisting> <programlisting>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/load.sgml,v 1.14 2002/11/21 23:34:43 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/load.sgml,v 1.15 2003/01/19 00:13:29 momjian Exp $
--> -->
<refentry id="SQL-LOAD"> <refentry id="SQL-LOAD">
@ -37,8 +37,8 @@ LOAD '<replaceable class="PARAMETER">filename</replaceable>'
The file name is specified in the same way as for shared library 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 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 may rely on a search path and automatic addition of the system's standard
shared library file name extension. See the shared library file name extension. See the &cite-programmer; for
<citetitle>Programmer's Guide</citetitle> for more detail. more information on this topic.
</para> </para>
</refsect1> </refsect1>
@ -57,7 +57,7 @@ LOAD '<replaceable class="PARAMETER">filename</replaceable>'
<para> <para>
<xref linkend="sql-createfunction" endterm="sql-createfunction-title">, <xref linkend="sql-createfunction" endterm="sql-createfunction-title">,
<citetitle>PostgreSQL Programmer's Guide</citetitle> &cite-programmer;
</para> </para>
</refsect1> </refsect1>
</refentry> </refentry>

View File

@ -1,4 +1,4 @@
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_config-ref.sgml,v 1.12 2002/11/15 03:11:18 momjian Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_config-ref.sgml,v 1.13 2003/01/19 00:13:29 momjian Exp $ -->
<refentry id="app-pgconfig"> <refentry id="app-pgconfig">
<refmeta> <refmeta>
@ -160,7 +160,24 @@
<title>See Also</title> <title>See Also</title>
<para> <para>
<citetitle>PostgreSQL Programmer's Guide</citetitle> &cite-programmer;
</para> </para>
</refsect1> </refsect1>
</refentry> </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:
-->

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_ctl-ref.sgml,v 1.17 2002/10/11 23:03:48 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_ctl-ref.sgml,v 1.18 2003/01/19 00:13:30 momjian Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -368,7 +368,7 @@ Command line was:
<title>See Also</title> <title>See Also</title>
<para> <para>
<xref linkend="app-postmaster">, <citetitle>PostgreSQL Administrator's Guide</citetitle> <xref linkend="app-postmaster">, &cite-admin;
</para> </para>
</refsect1> </refsect1>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_dump.sgml,v 1.54 2003/01/06 18:53:24 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_dump.sgml,v 1.55 2003/01/19 00:13:30 momjian Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -705,7 +705,7 @@ CREATE DATABASE foo WITH TEMPLATE template0;
<member><xref linkend="app-pg-dumpall"></member> <member><xref linkend="app-pg-dumpall"></member>
<member><xref linkend="app-pgrestore"></member> <member><xref linkend="app-pgrestore"></member>
<member><xref linkend="app-psql"></member> <member><xref linkend="app-psql"></member>
<member><citetitle>PostgreSQL Administrator's Guide</citetitle></member> <member>&cite-admin;</member>
</simplelist> </simplelist>
</refsect1> </refsect1>

View File

@ -1,4 +1,4 @@
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_restore.sgml,v 1.34 2003/01/06 18:53:24 petere Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_restore.sgml,v 1.35 2003/01/19 00:13:31 momjian Exp $ -->
<refentry id="APP-PGRESTORE"> <refentry id="APP-PGRESTORE">
<docinfo> <docinfo>
@ -697,7 +697,7 @@ CREATE DATABASE foo WITH TEMPLATE = template0;
<member><xref linkend="app-pgdump"></member> <member><xref linkend="app-pgdump"></member>
<member><xref linkend="app-pg-dumpall"></member> <member><xref linkend="app-pg-dumpall"></member>
<member><xref linkend="app-psql"></member> <member><xref linkend="app-psql"></member>
<member><citetitle>PostgreSQL Administrator's Guide</citetitle></member> <member>&cite-admin;</member>
</simplelist> </simplelist>
</refsect1> </refsect1>
</refentry> </refentry>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/Attic/pgtclsh.sgml,v 1.5 2002/04/21 19:02:39 thomas Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/Attic/pgtclsh.sgml,v 1.6 2003/01/19 00:13:31 momjian Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -55,7 +55,7 @@ PostgreSQL documentation
<simplelist type="inline"> <simplelist type="inline">
<member><xref linkend="app-pgtksh"></member> <member><xref linkend="app-pgtksh"></member>
<member> <member>
<citetitle>PostgreSQL Programmer's Guide</citetitle> (description of <filename>libpgtcl</filename>) &cite-programmer; (description of <filename>libpgtcl</filename>)
</member> </member>
<member> <member>
<citerefentry><refentrytitle>tclsh</refentrytitle> <manvolnum>1</manvolnum></citerefentry> <citerefentry><refentrytitle>tclsh</refentrytitle> <manvolnum>1</manvolnum></citerefentry>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/Attic/pgtksh.sgml,v 1.5 2002/04/21 19:02:39 thomas Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/Attic/pgtksh.sgml,v 1.6 2003/01/19 00:13:31 momjian Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -55,7 +55,7 @@ PostgreSQL documentation
<simplelist type="inline"> <simplelist type="inline">
<member><xref linkend="app-pgtclsh"></member> <member><xref linkend="app-pgtclsh"></member>
<member> <member>
<citetitle>PostgreSQL Programmer's Guide</citetitle> (description of <filename>libpgtcl</filename>) &cite-programmer; (description of <filename>libpgtcl</filename>)
</member> </member>
<member> <member>
<citerefentry><refentrytitle>tclsh</refentrytitle> <manvolnum>1</manvolnum></citerefentry> <citerefentry><refentrytitle>tclsh</refentrytitle> <manvolnum>1</manvolnum></citerefentry>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/postgres-ref.sgml,v 1.29 2002/10/23 23:33:08 momjian Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/postgres-ref.sgml,v 1.30 2003/01/19 00:13:31 momjian Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -123,11 +123,11 @@ PostgreSQL documentation
<para> <para>
You can avoid having to type these options by setting up a You can avoid having to type these options by setting up a
configuration file. See the <citetitle>Administrator's configuration file. See the &cite-admin; for details. Some
Guide</citetitle> for details. Some (safe) options can also be (safe) options can also be set from the connecting client in an
set from the connecting client in an application-dependent way. application-dependent way. For example, if the environment
For example, if the environment variable <envar>PGOPTIONS</envar> variable <envar>PGOPTIONS</envar> is set, then
is set, then <application>libpq</>-based clients will pass that string to the <application>libpq</>-based clients will pass that string to the
server, which will interpret it as server, which will interpret it as
<application>postgres</application> command-line options. <application>postgres</application> command-line options.
</para> </para>
@ -153,8 +153,7 @@ PostgreSQL documentation
means that the <quote>day before month</quote> (rather than means that the <quote>day before month</quote> (rather than
month before day) rule is used to interpret ambiguous date month before day) rule is used to interpret ambiguous date
input, and that the day is printed before the month in certain input, and that the day is printed before the month in certain
date output formats. See the <citetitle>PostgreSQL User's date output formats. See the &cite-user; for more information.
Guide</citetitle> for more information.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/postmaster.sgml,v 1.33 2002/10/11 23:03:48 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/postmaster.sgml,v 1.34 2003/01/19 00:13:31 momjian Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -80,9 +80,8 @@ PostgreSQL documentation
<para> <para>
<application>postmaster</application> accepts the following <application>postmaster</application> accepts the following
command line arguments. For a detailed discussion of the options command line arguments. For a detailed discussion of the options
consult the <citetitle>Administrator's Guide</citetitle>. You can consult the &cite-admin;. You can also save typing most of these
also save typing most of these options by setting up a options by setting up a configuration file.
configuration file.
<variablelist> <variablelist>
<varlistentry> <varlistentry>
@ -111,11 +110,11 @@ PostgreSQL documentation
<term>-c <replaceable>name</replaceable>=<replaceable>value</replaceable></term> <term>-c <replaceable>name</replaceable>=<replaceable>value</replaceable></term>
<listitem> <listitem>
<para> <para>
Sets a named run-time parameter. Consult the Sets a named run-time parameter. Consult the &cite-admin; for
<citetitle>Administrator's Guide</citetitle> for a list and a list and descriptions. Most of the other command line
descriptions. Most of the other command line options are in options are in fact short forms of such a parameter
fact short forms of such a parameter assignment. <option>-c</> assignment. <option>-c</> can appear multiple times to set
can appear multiple times to set multiple parameters. multiple parameters.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -219,9 +218,9 @@ PostgreSQL documentation
default, this value is 32, but it can be set as high as your default, this value is 32, but it can be set as high as your
system will support. (Note that system will support. (Note that
<option>-B</option> is required to be at least twice <option>-B</option> is required to be at least twice
<option>-N</option>. See the <citetitle>Administrator's <option>-N</option>. See the &cite-admin; for a discussion of
Guide</citetitle> for a discussion of system resource requirements system resource requirements for large numbers of client
for large numbers of client connections.) connections.)
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
@ -404,8 +403,8 @@ PostgreSQL documentation
<listitem> <listitem>
<para> <para>
Other environment variables may be used to designate alternative Other environment variables may be used to designate alternative
data storage locations. See the <citetitle>Administrator's data storage locations. See the &cite-admin; for more
Guide</citetitle> for more information. information.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/reset.sgml,v 1.17 2002/10/13 16:55:05 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/reset.sgml,v 1.18 2003/01/19 00:13:31 momjian Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -64,7 +64,7 @@ SET <replaceable class="parameter">variable</replaceable> TO DEFAULT
current session. The actual source of this value might be a current session. The actual source of this value might be a
compiled-in default, the postmaster's configuration file or command-line compiled-in default, the postmaster's configuration file or command-line
switches, or per-database or per-user default settings. See the switches, or per-database or per-user default settings. See the
<citetitle>Administrator's Guide</citetitle> for details. &cite-admin; for details.
</para> </para>
<para> <para>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/select.sgml,v 1.63 2002/10/24 21:19:15 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/select.sgml,v 1.64 2003/01/19 00:13:31 momjian Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -291,19 +291,17 @@ where <replaceable class="PARAMETER">from_item</replaceable> can be:
</para> </para>
<para> <para>
<command>DISTINCT</command> will eliminate duplicate rows from the DISTINCT will eliminate duplicate rows from the result. ALL (the
result. default) will return all candidate rows, including duplicates.
<command>ALL</command> (the default) will return all candidate rows,
including duplicates.
</para> </para>
<para> <para>
<command>DISTINCT ON</command> eliminates rows that match on all the DISTINCT ON eliminates rows that match on all the
specified expressions, keeping only the first row of each set of specified expressions, keeping only the first row of each set of
duplicates. The DISTINCT ON expressions are interpreted using the duplicates. The DISTINCT ON expressions are interpreted using the
same rules as for ORDER BY items; see below. same rules as for ORDER BY items; see below.
Note that the <quote>first row</quote> of each set is unpredictable Note that the <quote>first row</quote> of each set is unpredictable
unless <command>ORDER BY</command> is used to ensure that the desired unless ORDER BY is used to ensure that the desired
row appears first. For example, row appears first. For example,
<programlisting> <programlisting>
SELECT DISTINCT ON (location) location, time, report SELECT DISTINCT ON (location) location, time, report
@ -336,9 +334,9 @@ where <replaceable class="PARAMETER">from_item</replaceable> can be:
</para> </para>
<para> <para>
SELECT queries can be combined using UNION, INTERSECT, and EXCEPT <command>SELECT</command> queries can be combined using UNION,
operators. Use parentheses if necessary to determine the ordering INTERSECT, and EXCEPT operators. Use parentheses if necessary to
of these operators. determine the ordering of these operators.
</para> </para>
<para> <para>
@ -368,8 +366,8 @@ where <replaceable class="PARAMETER">from_item</replaceable> can be:
</para> </para>
<para> <para>
The FOR UPDATE clause causes the SELECT statement to lock the selected The FOR UPDATE clause causes the <command>SELECT</command>
rows against concurrent updates. statement to lock the selected rows against concurrent updates.
</para> </para>
<para> <para>
@ -387,11 +385,12 @@ where <replaceable class="PARAMETER">from_item</replaceable> can be:
</title> </title>
<para> <para>
The FROM clause specifies one or more source tables for the SELECT. The FROM clause specifies one or more source tables for the
If multiple sources are specified, the result is conceptually the <command>SELECT</command>. If multiple sources are specified, the
Cartesian product of all the rows in all the sources --- but usually result is conceptually the Cartesian product of all the rows in
qualification conditions are added to restrict the returned rows to all the sources --- but usually qualification conditions are added
a small subset of the Cartesian product. to restrict the returned rows to a small subset of the Cartesian
product.
</para> </para>
<para> <para>
@ -407,10 +406,11 @@ where <replaceable class="PARAMETER">from_item</replaceable> can be:
</para> </para>
<para> <para>
A FROM item can also be a parenthesized sub-SELECT (note that an A FROM item can also be a parenthesized
alias clause is required for a sub-SELECT!). This is an extremely sub-<command>SELECT</command> (note that an alias clause is
handy feature since it's the only way to get multiple levels of required for a sub-<command>SELECT</command>!). This is an
grouping, aggregation, or sorting in a single query. extremely useful feature since it's the only way to get multiple
levels of grouping, aggregation, or sorting in a single query.
</para> </para>
<para> <para>
@ -542,23 +542,25 @@ GROUP BY <replaceable class="PARAMETER">expression</replaceable> [, ...]
</para> </para>
<para> <para>
GROUP BY will condense into a single row all selected rows that share the GROUP BY will condense into a single row all selected rows that
same values for the grouped columns. Aggregate functions, if any, share the same values for the grouped columns. Aggregate
are computed across all rows making up each group, producing a functions, if any, are computed across all rows making up each
separate value for each group (whereas without GROUP BY, an group, producing a separate value for each group (whereas without
aggregate produces a single value computed across all the selected GROUP BY, an aggregate produces a single value computed across all
rows). When GROUP BY is present, it is not valid for the SELECT the selected rows). When GROUP BY is present, it is not valid for
output expression(s) to refer to the <command>SELECT</command> output expression(s) to refer to
ungrouped columns except within aggregate functions, since there ungrouped columns except within aggregate functions, since there
would be more than one possible value to return for an ungrouped column. would be more than one possible value to return for an ungrouped
column.
</para> </para>
<para> <para>
A GROUP BY item can be an input column name, or the name or ordinal A GROUP BY item can be an input column name, or the name or
number of an output column (SELECT expression), or it can be an arbitrary ordinal number of an output column (<command>SELECT</command>
expression formed from input-column values. In case of ambiguity, a GROUP expression), or it can be an arbitrary expression formed from
BY name will 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. be interpreted as an input-column name rather than an output
column name.
</para> </para>
</refsect2> </refsect2>
@ -610,10 +612,11 @@ ORDER BY <replaceable class="PARAMETER">expression</replaceable> [ ASC | DESC |
</synopsis></para> </synopsis></para>
<para> <para>
An ORDER BY item can be the name or ordinal An ORDER BY item can be the name or ordinal number of an output
number of an output column (SELECT expression), or it can be an arbitrary column (<command>SELECT</command> expression), or it can be an
expression formed from input-column values. In case of ambiguity, an arbitrary expression formed from input-column values. In case of
ORDER BY name will be interpreted as an output-column name. ambiguity, an ORDER BY name will be interpreted as an
output-column name.
</para> </para>
<para> <para>
The ordinal number refers to the ordinal (left-to-right) position The ordinal number refers to the ordinal (left-to-right) position
@ -697,10 +700,10 @@ SELECT name FROM distributors ORDER BY code;
<para> <para>
The UNION operator computes the collection (set union) of the rows The UNION operator computes the collection (set union) of the rows
returned by the queries involved. returned by the queries involved. The two
The two SELECT statements that represent the direct operands of the UNION must <command>SELECT</command> statements that represent the direct
produce the same number of columns, and corresponding columns must be operands of the UNION must produce the same number of columns, and
of compatible data types. corresponding columns must be of compatible data types.
</para> </para>
<para> <para>
@ -710,8 +713,9 @@ SELECT name FROM distributors ORDER BY code;
</para> </para>
<para> <para>
Multiple UNION operators in the same SELECT statement are Multiple UNION operators in the same <command>SELECT</command>
evaluated left to right, unless otherwise indicated by parentheses. statement are evaluated left to right, unless otherwise indicated
by parentheses.
</para> </para>
<para> <para>
@ -864,22 +868,26 @@ SELECT name FROM distributors ORDER BY code;
</para> </para>
<para> <para>
FOR UPDATE causes the rows retrieved by the query to be locked as though FOR UPDATE causes the rows retrieved by the query to be locked as
for update. This prevents them from being modified or deleted by other though for update. This prevents them from being modified or
transactions until the current transaction ends; that is, other deleted by other transactions until the current transaction ends;
transactions that attempt UPDATE, DELETE, or SELECT FOR UPDATE of these that is, other transactions that attempt
rows will be blocked until the current transaction ends. Also, if an <command>UPDATE</command>, <command>DELETE</command>, or
UPDATE, DELETE, or SELECT FOR UPDATE from another transaction has already <command>SELECT FOR UPDATE</command> of these rows will be blocked
locked a selected row or rows, SELECT FOR UPDATE will wait for the other until the current transaction ends. Also, if an
transaction to complete, and will then lock and return the updated row <command>UPDATE</command>, <command>DELETE</command>, or
(or no row, if the row was deleted). For further discussion see the <command>SELECT FOR UPDATE</command> from another transaction has
concurrency chapter of the <citetitle>User's Guide</citetitle>. 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>
<para> <para>
If specific tables are named in FOR UPDATE, then only rows coming from If specific tables are named in FOR UPDATE, then only rows coming
those tables are locked; any other tables used in the SELECT are simply from those tables are locked; any other tables used in the
read as usual. <command>SELECT</command> are simply read as usual.
</para> </para>
<para> <para>
@ -1097,9 +1105,9 @@ SELECT 2+2;
4 4
</programlisting> </programlisting>
Some other SQL databases cannot do this except by introducing a dummy one-row Some other <acronym>SQL</acronym> databases cannot do this except by
table to do the select from. A less obvious use is to abbreviate a introducing a dummy one-row table to do the select from. A less
normal select from one or more tables: obvious use is to abbreviate a normal select from one or more tables:
<programlisting> <programlisting>
SELECT distributors.* WHERE distributors.name = 'Westward'; SELECT distributors.* WHERE distributors.name = 'Westward';

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/set.sgml,v 1.71 2003/01/12 01:33:00 momjian Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/set.sgml,v 1.72 2003/01/19 00:13:31 momjian Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -80,11 +80,11 @@ SET [ SESSION | LOCAL ] TIME ZONE { <replaceable class="PARAMETER">timezone</rep
<para> <para>
The <command>SET</command> command changes run-time configuration The <command>SET</command> command changes run-time configuration
parameters. Many of the run-time parameters listed in the parameters. Many of the run-time parameters listed in the
<citetitle>Administrator's Guide</citetitle> can be changed on-the-fly &cite-admin; can be changed on-the-fly with <command>SET</command>.
with <command>SET</command>. (But some require superuser privileges (But some require superuser privileges to change, and others cannot
to change, and others cannot be changed after server or session start.) be changed after server or session start.) Note that
Note that <command>SET</command> only affects the value used by the <command>SET</command> only affects the value used by the current
current session. session.
</para> </para>
<para> <para>
@ -109,10 +109,9 @@ SET [ SESSION | LOCAL ] TIME ZONE { <replaceable class="PARAMETER">timezone</rep
</para> </para>
<para> <para>
Even with <literal>autocommit</> set to <literal>off</>, <command>SET</> Even with <varname>autocommit</> set to <literal>off</>, <command>SET</>
does not start a new transaction block. See the does not start a new transaction block. See the
<literal>autocommit</> section of the <citetitle>Administrator's <varname>autocommit</> section of the &cite-admin; for details.
Guide</citetitle> for details.
</para> </para>
<para> <para>
@ -517,8 +516,8 @@ SELECT CURRENT_TIMESTAMP AS today;
<para> <para>
The function <function>set_config</function> provides the equivalent The function <function>set_config</function> provides the equivalent
capability. See <citetitle>Miscellaneous Functions</citetitle> in the capability. See <citetitle>Miscellaneous Functions</citetitle> in
<citetitle>PostgreSQL User's Guide</citetitle>. the &cite-user;.
</para> </para>
</refsect1> </refsect1>
</refentry> </refentry>

View File

@ -1,4 +1,4 @@
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/ref/set_transaction.sgml,v 1.11 2003/01/11 00:00:03 petere Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/ref/set_transaction.sgml,v 1.12 2003/01/19 00:13:31 momjian Exp $ -->
<refentry id="SQL-SET-TRANSACTION"> <refentry id="SQL-SET-TRANSACTION">
<docinfo> <docinfo>
<date>2000-11-24</date> <date>2000-11-24</date>
@ -109,9 +109,8 @@ SET SESSION CHARACTERISTICS AS TRANSACTION
<programlisting> <programlisting>
SET default_transaction_isolation = '<replaceable>value</replaceable>' SET default_transaction_isolation = '<replaceable>value</replaceable>'
</programlisting> </programlisting>
and in the and in the configuration file. Consult the &cite-admin; for more
configuration file. Consult the <citetitle>Administrator's information.
Guide</citetitle> for more information.
</para> </para>
</refsect1> </refsect1>
@ -127,8 +126,7 @@ SET default_transaction_isolation = '<replaceable>value</replaceable>'
not provide the isolation levels <option>READ UNCOMMITTED</option> not provide the isolation levels <option>READ UNCOMMITTED</option>
and <option>REPEATABLE READ</option>. Because of multiversion and <option>REPEATABLE READ</option>. Because of multiversion
concurrency control, the <option>SERIALIZABLE</option> level is not concurrency control, the <option>SERIALIZABLE</option> level is not
truly serializable. See the <citetitle>User's Guide</citetitle> for truly serializable. See the &cite-user; for details.
details.
</para> </para>
<para> <para>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/show.sgml,v 1.22 2002/10/13 16:55:05 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/show.sgml,v 1.23 2003/01/19 00:13:31 momjian Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -62,10 +62,9 @@ SHOW ALL
</para> </para>
<para> <para>
Even with <literal>autocommit</> set to <literal>off</>, <command>SHOW</> Even with <varname>autocommit</> set to <literal>off</>, <command>SHOW</>
does not start a new transaction block. See the does not start a new transaction block. See the
<literal>autocommit</> section of the <citetitle>Administrator's <varname>autocommit</> section of the &cite-admin; for details.
Guide</citetitle> for details.
</para> </para>
</refsect1> </refsect1>
@ -91,7 +90,7 @@ SHOW ALL
<refsect1 id="R1-SQL-SHOW-2"> <refsect1 id="R1-SQL-SHOW-2">
<title>Examples</title> <title>Examples</title>
<para> <para>
Show the current <literal>DateStyle</literal> setting: Show the current <varname>DateStyle</varname> setting:
<programlisting> <programlisting>
SHOW DateStyle; SHOW DateStyle;
@ -103,7 +102,8 @@ SHOW DateStyle;
</para> </para>
<para> <para>
Show the current genetic optimizer (<literal>geqo</literal>) setting: Show whether the genetic query optimizer is enabled by displaying
the <varname>geqo</varname> setting:
<programlisting> <programlisting>
SHOW GEQO; SHOW GEQO;
geqo geqo
@ -148,7 +148,7 @@ SHOW ALL;
<para> <para>
The function <function>current_setting</function> produces equivalent The function <function>current_setting</function> produces equivalent
output. See <citetitle>Miscellaneous Functions</citetitle> in the output. See <citetitle>Miscellaneous Functions</citetitle> in the
<citetitle>PostgreSQL User's Guide</citetitle>. &cite-user;.
</para> </para>
</refsect1> </refsect1>
</refentry> </refentry>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/vacuum.sgml,v 1.27 2002/10/09 16:27:48 momjian Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/vacuum.sgml,v 1.28 2003/01/19 00:13:31 momjian Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
@ -206,7 +206,7 @@ INFO: Index <replaceable class="PARAMETER">index</replaceable>: Pages 28;
intended usage is in connection with preparation of user-defined template intended usage is in connection with preparation of user-defined template
databases, or other databases that are completely read-only and will not databases, or other databases that are completely read-only and will not
receive routine maintenance <command>VACUUM</> operations. receive routine maintenance <command>VACUUM</> operations.
See the <citetitle>Administrator's Guide</> for details. See the &cite-admin; for details.
</para> </para>
<refsect2 id="R2-SQL-VACUUM-3"> <refsect2 id="R2-SQL-VACUUM-3">

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/xaggr.sgml,v 1.17 2002/09/21 18:32:54 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/xaggr.sgml,v 1.18 2003/01/19 00:13:28 momjian Exp $
--> -->
<chapter id="xaggr"> <chapter id="xaggr">
@ -114,8 +114,7 @@ CREATE AGGREGATE avg (
<para> <para>
For further details see the description of the <command>CREATE For further details see the description of the <command>CREATE
AGGREGATE</command> command in the <citetitle>Reference AGGREGATE</command> command in the &cite-reference;.
Manual</citetitle>.
</para> </para>
</chapter> </chapter>

View File

@ -1,5 +1,5 @@
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/xfunc.sgml,v 1.63 2003/01/17 03:28:18 momjian Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/xfunc.sgml,v 1.64 2003/01/19 00:13:28 momjian Exp $
--> -->
<chapter id="xfunc"> <chapter id="xfunc">
@ -2051,8 +2051,8 @@ CREATE FUNCTION test(smallint, double precision) RETURNS ...
it is not immediately clear which function would be called with it is not immediately clear which function would be called with
some trivial input like <literal>test(1, 1.5)</literal>. The some trivial input like <literal>test(1, 1.5)</literal>. The
currently implemented resolution rules are described in the currently implemented resolution rules are described in the
<citetitle>User's Guide</citetitle>, but it is unwise to design a &cite-user;, but it is unwise to design a system that subtly
system that subtly relies on this behavior. relies on this behavior.
</para> </para>
<para> <para>