Commit c326d8f4 authored by Peter Eisentraut's avatar Peter Eisentraut

Add/edit index entries.

parent cf8e9169
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/advanced.sgml,v 1.34 2003/03/25 16:15:35 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/advanced.sgml,v 1.35 2003/08/31 17:32:18 petere Exp $
--> -->
<chapter id="tutorial-advanced"> <chapter id="tutorial-advanced">
...@@ -142,7 +142,7 @@ ERROR: &lt;unnamed&gt; referential integrity violation - key referenced from we ...@@ -142,7 +142,7 @@ ERROR: &lt;unnamed&gt; referential integrity violation - key referenced from we
<title>Transactions</title> <title>Transactions</title>
<indexterm zone="tutorial-transactions"> <indexterm zone="tutorial-transactions">
<primary>transactions</primary> <primary>transaction</primary>
</indexterm> </indexterm>
<para> <para>
......
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/array.sgml,v 1.30 2003/08/19 06:06:43 tgl Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/array.sgml,v 1.31 2003/08/31 17:32:18 petere Exp $ -->
<sect1 id="arrays"> <sect1 id="arrays">
<title>Arrays</title> <title>Arrays</title>
<indexterm> <indexterm>
<primary>arrays</primary> <primary>array</primary>
</indexterm> </indexterm>
<para> <para>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/backup.sgml,v 2.29 2003/08/17 22:05:13 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/backup.sgml,v 2.30 2003/08/31 17:32:18 petere Exp $
--> -->
<chapter id="backup"> <chapter id="backup">
<title>Backup and Restore</title> <title>Backup and Restore</title>
...@@ -285,13 +285,15 @@ pg_dump -Fc <replaceable class="parameter">dbname</replaceable> > <replaceable c ...@@ -285,13 +285,15 @@ pg_dump -Fc <replaceable class="parameter">dbname</replaceable> > <replaceable c
</para> </para>
<para> <para>
For reasons of backward compatibility, <application>pg_dump</> does For reasons of backward compatibility, <application>pg_dump</>
not dump large objects by default. To dump large objects you must use does not dump large objects by default.<indexterm><primary>large
either the custom or the TAR output format, and use the <option>-b</> option in object</primary><secondary>backup</secondary></indexterm> To dump
<application>pg_dump</>. See the reference pages for details. large objects you must use either the custom or the TAR output
The directory <filename>contrib/pg_dumplo</> of the format, and use the <option>-b</> option in
<productname>PostgreSQL</> source tree also contains a program that can <application>pg_dump</>. See the reference pages for details. The
dump large objects. directory <filename>contrib/pg_dumplo</> of the
<productname>PostgreSQL</> source tree also contains a program
that can dump large objects.
</para> </para>
<para> <para>
...@@ -371,7 +373,15 @@ tar -cf backup.tar /usr/local/pgsql/data ...@@ -371,7 +373,15 @@ tar -cf backup.tar /usr/local/pgsql/data
<sect1 id="migration"> <sect1 id="migration">
<title>Migration between releases</title> <title>Migration between releases</title>
<indexterm zone="migration"><primary>upgrading</></>
<indexterm zone="migration">
<primary>upgrading</primary>
</indexterm>
<indexterm zone="migration">
<primary>version</primary>
<secondary>compatibility</secondary>
</indexterm>
<para> <para>
As a general rule, the internal data storage format is subject to As a general rule, the internal data storage format is subject to
......
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/charset.sgml,v 2.37 2003/08/04 04:03:03 tgl Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/charset.sgml,v 2.38 2003/08/31 17:32:18 petere Exp $ -->
<chapter id="charset"> <chapter id="charset">
<title>Localization</> <title>Localization</>
...@@ -197,7 +197,7 @@ initdb --locale=sv_SE ...@@ -197,7 +197,7 @@ initdb --locale=sv_SE
<listitem> <listitem>
<para> <para>
Sort order in queries using <command>ORDER BY</> Sort order in queries using <command>ORDER BY</>
<indexterm><primary>ORDER BY</></> <indexterm><primary>ORDER BY</><secondary>and locales</></indexterm>
</para> </para>
</listitem> </listitem>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/client-auth.sgml,v 1.55 2003/08/17 04:39:11 momjian Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/client-auth.sgml,v 1.56 2003/08/31 17:32:18 petere Exp $
--> -->
<chapter id="client-authentication"> <chapter id="client-authentication">
...@@ -576,6 +576,7 @@ local db1,db2,@demodbs all md5 ...@@ -576,6 +576,7 @@ local db1,db2,@demodbs all md5
</indexterm> </indexterm>
<indexterm> <indexterm>
<primary>password</primary> <primary>password</primary>
<secondary>authentication</secondary>
</indexterm> </indexterm>
<para> <para>
...@@ -865,6 +866,10 @@ omicron bryanh guest1 ...@@ -865,6 +866,10 @@ omicron bryanh guest1
<sect2 id="auth-pam"> <sect2 id="auth-pam">
<title>PAM Authentication</title> <title>PAM Authentication</title>
<indexterm zone="auth-pam">
<primary>PAM</primary>
</indexterm>
<para> <para>
This authentication method operates similarly to This authentication method operates similarly to
<literal>password</literal> except that it uses PAM (Pluggable <literal>password</literal> except that it uses PAM (Pluggable
......
This diff is collapsed.
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/datetime.sgml,v 2.33 2003/08/25 23:30:25 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/datetime.sgml,v 2.34 2003/08/31 17:32:18 petere Exp $
--> -->
<appendix id="datetime-appendix"> <appendix id="datetime-appendix">
...@@ -364,7 +364,8 @@ $Header: /cvsroot/pgsql/doc/src/sgml/datetime.sgml,v 2.33 2003/08/25 23:30:25 tg ...@@ -364,7 +364,8 @@ $Header: /cvsroot/pgsql/doc/src/sgml/datetime.sgml,v 2.33 2003/08/25 23:30:25 tg
</para> </para>
<indexterm> <indexterm>
<primary>time zones</primary> <primary>time zone</primary>
<secondary>abbreviations</secondary>
</indexterm> </indexterm>
<para> <para>
......
This diff is collapsed.
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/dfunc.sgml,v 1.25 2003/04/10 01:22:44 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/dfunc.sgml,v 1.26 2003/08/31 17:32:18 petere Exp $
--> -->
<sect2 id="dfunc"> <sect2 id="dfunc">
...@@ -8,9 +8,11 @@ $Header: /cvsroot/pgsql/doc/src/sgml/dfunc.sgml,v 1.25 2003/04/10 01:22:44 peter ...@@ -8,9 +8,11 @@ $Header: /cvsroot/pgsql/doc/src/sgml/dfunc.sgml,v 1.25 2003/04/10 01:22:44 peter
<para> <para>
Before you are able to use your Before you are able to use your
<productname>PostgreSQL</productname> extension functions written in <productname>PostgreSQL</productname> extension functions written in
C, they must be compiled and linked in a special way to produce a file C, they must be compiled and linked in a special way to produce a
that can be dynamically loaded by the server. To be file that can be dynamically loaded by the server. To be precise, a
precise, a <firstterm>shared library</firstterm> needs to be created. <firstterm>shared library</firstterm> needs to be
created.<indexterm><primary>shared library</></indexterm>
</para> </para>
<para> <para>
...@@ -26,17 +28,18 @@ $Header: /cvsroot/pgsql/doc/src/sgml/dfunc.sgml,v 1.25 2003/04/10 01:22:44 peter ...@@ -26,17 +28,18 @@ $Header: /cvsroot/pgsql/doc/src/sgml/dfunc.sgml,v 1.25 2003/04/10 01:22:44 peter
</para> </para>
<para> <para>
<indexterm><primary>PIC</></> <indexterm><primary>PIC</></> Creating shared libraries is generally
Creating shared libraries is generally analogous to linking analogous to linking executables: first the source files are
executables: first the source files are compiled into object files, compiled into object files, then the object files are linked
then the object files are linked together. The object files need to together. The object files need to be created as
be created as <firstterm>position-independent code</firstterm> <firstterm>position-independent code</firstterm>
(<acronym>PIC</acronym>), which conceptually means that they can be (<acronym>PIC</acronym>),<indexterm><primary>PIC</></> which
placed at an arbitrary location in memory when they are loaded by the conceptually means that they can be placed at an arbitrary location
executable. (Object files intended for executables are usually not compiled in memory when they are loaded by the executable. (Object files
that way.) The command to link a shared library contains special intended for executables are usually not compiled that way.) The
flags to distinguish it from linking an executable. --- At least command to link a shared library contains special flags to
this is the theory. On some systems the practice is much uglier. distinguish it from linking an executable. --- At least this is the
theory. On some systems the practice is much uglier.
</para> </para>
<para> <para>
...@@ -57,7 +60,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/dfunc.sgml,v 1.25 2003/04/10 01:22:44 peter ...@@ -57,7 +60,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/dfunc.sgml,v 1.25 2003/04/10 01:22:44 peter
<variablelist> <variablelist>
<varlistentry> <varlistentry>
<term><systemitem class="osname">BSD/OS</></term> <term><systemitem class="osname">BSD/OS</></term>
<indexterm><primary>BSD/OS</></> <indexterm><primary>BSD/OS</><secondary>shared library</></>
<listitem> <listitem>
<para> <para>
The compiler flag to create <acronym>PIC</acronym> is The compiler flag to create <acronym>PIC</acronym> is
...@@ -75,7 +78,7 @@ ld -shared -o foo.so foo.o ...@@ -75,7 +78,7 @@ ld -shared -o foo.so foo.o
<varlistentry> <varlistentry>
<term><systemitem class="osname">FreeBSD</></term> <term><systemitem class="osname">FreeBSD</></term>
<indexterm><primary>FreeBSD</></> <indexterm><primary>FreeBSD</><secondary>shared library</></>
<listitem> <listitem>
<para> <para>
The compiler flag to create <acronym>PIC</acronym> is The compiler flag to create <acronym>PIC</acronym> is
...@@ -93,7 +96,7 @@ gcc -shared -o foo.so foo.o ...@@ -93,7 +96,7 @@ gcc -shared -o foo.so foo.o
<varlistentry> <varlistentry>
<term><systemitem class="osname">HP-UX</></term> <term><systemitem class="osname">HP-UX</></term>
<indexterm><primary>HP-UX</></> <indexterm><primary>HP-UX</><secondary>shared library</></>
<listitem> <listitem>
<para> <para>
The compiler flag of the system compiler to create The compiler flag of the system compiler to create
...@@ -120,7 +123,7 @@ ld -b -o foo.sl foo.o ...@@ -120,7 +123,7 @@ ld -b -o foo.sl foo.o
<varlistentry> <varlistentry>
<term><systemitem class="osname">IRIX</></term> <term><systemitem class="osname">IRIX</></term>
<indexterm><primary>IRIX</></> <indexterm><primary>IRIX</><secondary>shared library</></>
<listitem> <listitem>
<para> <para>
<acronym>PIC</acronym> is the default, no special compiler <acronym>PIC</acronym> is the default, no special compiler
...@@ -136,7 +139,7 @@ ld -shared -o foo.so foo.o ...@@ -136,7 +139,7 @@ ld -shared -o foo.so foo.o
<varlistentry> <varlistentry>
<term><systemitem class="osname">Linux</></term> <term><systemitem class="osname">Linux</></term>
<indexterm><primary>Linux</></> <indexterm><primary>Linux</><secondary>shared library</></>
<listitem> <listitem>
<para> <para>
The compiler flag to create <acronym>PIC</acronym> is The compiler flag to create <acronym>PIC</acronym> is
...@@ -155,7 +158,7 @@ cc -shared -o foo.so foo.o ...@@ -155,7 +158,7 @@ cc -shared -o foo.so foo.o
<varlistentry> <varlistentry>
<term><systemitem class="osname">MacOS X</></term> <term><systemitem class="osname">MacOS X</></term>
<indexterm><primary>MacOS X</></> <indexterm><primary>MacOS X</><secondary>shared library</></>
<listitem> <listitem>
<para> <para>
Here is an example. It assumes the developer tools are installed. Here is an example. It assumes the developer tools are installed.
...@@ -169,7 +172,7 @@ cc -bundle -flat_namespace -undefined suppress -o foo.so foo.o ...@@ -169,7 +172,7 @@ cc -bundle -flat_namespace -undefined suppress -o foo.so foo.o
<varlistentry> <varlistentry>
<term><systemitem class="osname">NetBSD</></term> <term><systemitem class="osname">NetBSD</></term>
<indexterm><primary>NetBSD</></> <indexterm><primary>NetBSD</><secondary>shared library</></>
<listitem> <listitem>
<para> <para>
The compiler flag to create <acronym>PIC</acronym> is The compiler flag to create <acronym>PIC</acronym> is
...@@ -187,7 +190,7 @@ gcc -shared -o foo.so foo.o ...@@ -187,7 +190,7 @@ gcc -shared -o foo.so foo.o
<varlistentry> <varlistentry>
<term><systemitem class="osname">OpenBSD</></term> <term><systemitem class="osname">OpenBSD</></term>
<indexterm><primary>OpenBSD</></> <indexterm><primary>OpenBSD</><secondary>shared library</></>
<listitem> <listitem>
<para> <para>
The compiler flag to create <acronym>PIC</acronym> is The compiler flag to create <acronym>PIC</acronym> is
...@@ -203,7 +206,7 @@ ld -Bshareable -o foo.so foo.o ...@@ -203,7 +206,7 @@ ld -Bshareable -o foo.so foo.o
<varlistentry> <varlistentry>
<term><systemitem class="osname">Solaris</></term> <term><systemitem class="osname">Solaris</></term>
<indexterm><primary>Solaris</></> <indexterm><primary>Solaris</><secondary>shared library</></>
<listitem> <listitem>
<para> <para>
The compiler flag to create <acronym>PIC</acronym> is The compiler flag to create <acronym>PIC</acronym> is
...@@ -227,7 +230,7 @@ gcc -G -o foo.so foo.o ...@@ -227,7 +230,7 @@ gcc -G -o foo.so foo.o
<varlistentry> <varlistentry>
<term><systemitem class="osname">Tru64 UNIX</></term> <term><systemitem class="osname">Tru64 UNIX</></term>
<indexterm><primary>Tru64 UNIX</></> <indexterm><primary>Tru64 UNIX</><secondary>shared library</></>
<indexterm><primary>Digital UNIX</><see>Tru64 UNIX</></> <indexterm><primary>Digital UNIX</><see>Tru64 UNIX</></>
<listitem> <listitem>
<para> <para>
...@@ -246,7 +249,7 @@ ld -shared -expect_unresolved '*' -o foo.so foo.o ...@@ -246,7 +249,7 @@ ld -shared -expect_unresolved '*' -o foo.so foo.o
<varlistentry> <varlistentry>
<term><systemitem class="osname">UnixWare</></term> <term><systemitem class="osname">UnixWare</></term>
<indexterm><primary>UnixWare</></> <indexterm><primary>UnixWare</><secondary>shared library</></>
<listitem> <listitem>
<para> <para>
The compiler flag to create <acronym>PIC</acronym> is <option>-K The compiler flag to create <acronym>PIC</acronym> is <option>-K
......
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/dml.sgml,v 1.5 2003/08/10 01:20:34 tgl Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/dml.sgml,v 1.6 2003/08/31 17:32:18 petere Exp $ -->
<chapter id="dml"> <chapter id="dml">
<title>Data Manipulation</title> <title>Data Manipulation</title>
...@@ -20,6 +20,14 @@ ...@@ -20,6 +20,14 @@
<sect1 id="dml-insert"> <sect1 id="dml-insert">
<title>Inserting Data</title> <title>Inserting Data</title>
<indexterm zone="dml-insert">
<primary>inserting</primary>
</indexterm>
<indexterm zone="dml-insert">
<primary>INSERT</primary>
</indexterm>
<para> <para>
When a table is created, it contains no data. The first thing to When a table is created, it contains no data. The first thing to
do before a database can be of much use is to insert data. Data is do before a database can be of much use is to insert data. Data is
...@@ -98,6 +106,14 @@ INSERT INTO products DEFAULT VALUES; ...@@ -98,6 +106,14 @@ INSERT INTO products DEFAULT VALUES;
<sect1 id="dml-update"> <sect1 id="dml-update">
<title>Updating Data</title> <title>Updating Data</title>
<indexterm zone="dml-update">
<primary>updating</primary>
</indexterm>
<indexterm zone="dml-update">
<primary>UPDATE</primary>
</indexterm>
<para> <para>
The modification of data that is already in the database is The modification of data that is already in the database is
referred to as updating. You can update individual rows, all the referred to as updating. You can update individual rows, all the
...@@ -182,6 +198,14 @@ UPDATE mytable SET a = 5, b = 3, c = 1 WHERE a > 0; ...@@ -182,6 +198,14 @@ UPDATE mytable SET a = 5, b = 3, c = 1 WHERE a > 0;
<sect1 id="dml-delete"> <sect1 id="dml-delete">
<title>Deleting Data</title> <title>Deleting Data</title>
<indexterm zone="dml-delete">
<primary>deleting</primary>
</indexterm>
<indexterm zone="dml-delete">
<primary>DELETE</primary>
</indexterm>
<para> <para>
So far we have explained how to add data to tables and how to So far we have explained how to add data to tables and how to
change data. What remains is to discuss how to remove data that is change data. What remains is to discuss how to remove data that is
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ecpg.sgml,v 1.48 2003/08/07 04:17:21 momjian Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ecpg.sgml,v 1.49 2003/08/31 17:32:18 petere Exp $
--> -->
<chapter id="ecpg"> <chapter id="ecpg">
<title><application>ECPG</application> - Embedded <acronym>SQL</acronym> in C</title> <title><application>ECPG</application> - Embedded <acronym>SQL</acronym> in C</title>
<indexterm zone="ecpg"><primary>embedded SQL</primary><secondary>in C</secondary></indexterm> <indexterm zone="ecpg"><primary>embedded SQL</primary><secondary>in C</secondary></indexterm>
<indexterm zone="ecpg"><primary>C</primary></indexterm>
<indexterm zone="ecpg"><primary>ECPG</primary></indexterm>
<para> <para>
This chapter describes the embedded <acronym>SQL</acronym> package This chapter describes the embedded <acronym>SQL</acronym> package
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/extend.sgml,v 1.23 2003/08/09 22:50:21 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/extend.sgml,v 1.24 2003/08/31 17:32:18 petere Exp $
--> -->
<chapter id="extend"> <chapter id="extend">
...@@ -80,16 +80,25 @@ $Header: /cvsroot/pgsql/doc/src/sgml/extend.sgml,v 1.23 2003/08/09 22:50:21 tgl ...@@ -80,16 +80,25 @@ $Header: /cvsroot/pgsql/doc/src/sgml/extend.sgml,v 1.23 2003/08/09 22:50:21 tgl
</para> </para>
</sect1> </sect1>
<sect1 id="type-system"> <sect1 id="extend-type-system">
<title>The <productname>PostgreSQL</productname> Type System</title> <title>The <productname>PostgreSQL</productname> Type System</title>
<indexterm zone="type-system"> <indexterm zone="extend-type-system">
<primary>extending SQL</primary> <primary>base type</primary>
<secondary>types</secondary> </indexterm>
<indexterm zone="extend-type-system">
<primary>data type</primary>
<secondary>base</secondary>
</indexterm>
<indexterm zone="extend-type-system">
<primary>composite type</primary>
</indexterm> </indexterm>
<indexterm zone="type-system"> <indexterm zone="extend-type-system">
<primary>data types</primary> <primary>data type</primary>
<secondary>composite</secondary>
</indexterm> </indexterm>
<para> <para>
...@@ -138,15 +147,25 @@ $Header: /cvsroot/pgsql/doc/src/sgml/extend.sgml,v 1.23 2003/08/09 22:50:21 tgl ...@@ -138,15 +147,25 @@ $Header: /cvsroot/pgsql/doc/src/sgml/extend.sgml,v 1.23 2003/08/09 22:50:21 tgl
pseudo-types. pseudo-types.
</para> </para>
<sect2 id="types-polymorphic"> <sect2 id="extend-types-polymorphic">
<title>Polymorphic Types and Functions</title> <title>Polymorphic Types and Functions</title>
<indexterm> <indexterm zone="extend-types-polymorphic">
<primary>polymorphic types</primary> <primary>polymorphic type</primary>
</indexterm>
<indexterm zone="extend-types-polymorphic">
<primary>polymorphic function</primary>
</indexterm>
<indexterm zone="extend-types-polymorphic">
<primary>type</primary>
<secondary>polymorphic</secondary>
</indexterm> </indexterm>
<indexterm> <indexterm zone="extend-types-polymorphic">
<primary>polymorphic functions</primary> <primary>function</primary>
<secondary>polymorphic</secondary>
</indexterm> </indexterm>
<para> <para>
......
This diff is collapsed.
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/indices.sgml,v 1.42 2003/05/28 16:03:55 tgl Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/indices.sgml,v 1.43 2003/08/31 17:32:19 petere Exp $ -->
<chapter id="indexes"> <chapter id="indexes">
<title id="indexes-title">Indexes</title> <title id="indexes-title">Indexes</title>
<indexterm zone="indexes"> <indexterm zone="indexes">
<primary>indexes</primary> <primary>index</primary>
</indexterm> </indexterm>
<para> <para>
...@@ -109,12 +109,12 @@ CREATE INDEX test1_id_index ON test1 (id); ...@@ -109,12 +109,12 @@ CREATE INDEX test1_id_index ON test1 (id);
B-tree, R-tree, GiST, and Hash. Each index type is more appropriate for B-tree, R-tree, GiST, and Hash. Each index type is more appropriate for
a particular query type because of the algorithm it uses. a particular query type because of the algorithm it uses.
<indexterm> <indexterm>
<primary>indexes</primary> <primary>index</primary>
<secondary>B-tree</secondary> <secondary>B-tree</secondary>
</indexterm> </indexterm>
<indexterm> <indexterm>
<primary>B-tree</primary> <primary>B-tree</primary>
<see>indexes</see> <see>index</see>
</indexterm> </indexterm>
By By
default, the <command>CREATE INDEX</command> command will create a default, the <command>CREATE INDEX</command> command will create a
...@@ -147,12 +147,12 @@ CREATE INDEX test1_id_index ON test1 (id); ...@@ -147,12 +147,12 @@ CREATE INDEX test1_id_index ON test1 (id);
<para> <para>
<indexterm> <indexterm>
<primary>indexes</primary> <primary>index</primary>
<secondary>R-tree</secondary> <secondary>R-tree</secondary>
</indexterm> </indexterm>
<indexterm> <indexterm>
<primary>R-tree</primary> <primary>R-tree</primary>
<see>indexes</see> <see>index</see>
</indexterm> </indexterm>
R-tree indexes are especially suited for spatial data. To create R-tree indexes are especially suited for spatial data. To create
an R-tree index, use a command of the form an R-tree index, use a command of the form
...@@ -178,12 +178,12 @@ CREATE INDEX <replaceable>name</replaceable> ON <replaceable>table</replaceable> ...@@ -178,12 +178,12 @@ CREATE INDEX <replaceable>name</replaceable> ON <replaceable>table</replaceable>
<para> <para>
<indexterm> <indexterm>
<primary>indexes</primary> <primary>index</primary>
<secondary>hash</secondary> <secondary>hash</secondary>
</indexterm> </indexterm>
<indexterm> <indexterm>
<primary>hash</primary> <primary>hash</primary>
<see>indexes</see> <see>index</see>
</indexterm> </indexterm>
The query planner will consider using a hash index whenever an The query planner will consider using a hash index whenever an
indexed column is involved in a comparison using the indexed column is involved in a comparison using the
...@@ -219,7 +219,7 @@ CREATE INDEX <replaceable>name</replaceable> ON <replaceable>table</replaceable> ...@@ -219,7 +219,7 @@ CREATE INDEX <replaceable>name</replaceable> ON <replaceable>table</replaceable>
<title>Multicolumn Indexes</title> <title>Multicolumn Indexes</title>
<indexterm zone="indexes-multicolumn"> <indexterm zone="indexes-multicolumn">
<primary>indexes</primary> <primary>index</primary>
<secondary>multicolumn</secondary> <secondary>multicolumn</secondary>
</indexterm> </indexterm>
...@@ -294,7 +294,7 @@ SELECT name FROM test2 WHERE major = <replaceable>constant</replaceable> OR mino ...@@ -294,7 +294,7 @@ SELECT name FROM test2 WHERE major = <replaceable>constant</replaceable> OR mino
<title>Unique Indexes</title> <title>Unique Indexes</title>
<indexterm zone="indexes-unique"> <indexterm zone="indexes-unique">
<primary>indexes</primary> <primary>index</primary>
<secondary>unique</secondary> <secondary>unique</secondary>
</indexterm> </indexterm>
...@@ -337,8 +337,8 @@ CREATE UNIQUE INDEX <replaceable>name</replaceable> ON <replaceable>table</repla ...@@ -337,8 +337,8 @@ CREATE UNIQUE INDEX <replaceable>name</replaceable> ON <replaceable>table</repla
<title>Indexes on Expressions</title> <title>Indexes on Expressions</title>
<indexterm zone="indexes-expressional"> <indexterm zone="indexes-expressional">
<primary>indexes</primary> <primary>index</primary>
<secondary>on expressions</secondary> <secondary sortas="expressions">on expressions</secondary>
</indexterm> </indexterm>
<para> <para>
...@@ -392,6 +392,10 @@ CREATE INDEX people_names ON people ((first_name || ' ' || last_name)); ...@@ -392,6 +392,10 @@ CREATE INDEX people_names ON people ((first_name || ' ' || last_name));
<sect1 id="indexes-opclass"> <sect1 id="indexes-opclass">
<title>Operator Classes</title> <title>Operator Classes</title>
<indexterm zone="indexes-opclass">
<primary>operator class</primary>
</indexterm>
<para> <para>
An index definition may specify an <firstterm>operator An index definition may specify an <firstterm>operator
class</firstterm> for each column of an index. class</firstterm> for each column of an index.
...@@ -492,7 +496,7 @@ SELECT am.amname AS index_method, ...@@ -492,7 +496,7 @@ SELECT am.amname AS index_method,
<title>Partial Indexes</title> <title>Partial Indexes</title>
<indexterm zone="indexes-partial"> <indexterm zone="indexes-partial">
<primary>indexes</primary> <primary>index</primary>
<secondary>partial</secondary> <secondary>partial</secondary>
</indexterm> </indexterm>
...@@ -709,6 +713,11 @@ CREATE UNIQUE INDEX tests_success_constraint ON tests (subject, target) ...@@ -709,6 +713,11 @@ CREATE UNIQUE INDEX tests_success_constraint ON tests (subject, target)
<sect1 id="indexes-examine"> <sect1 id="indexes-examine">
<title>Examining Index Usage</title> <title>Examining Index Usage</title>
<indexterm zone="indexes-examine">
<primary>index</primary>
<secondary>examining usage</secondary>
</indexterm>
<para> <para>
Although indexes in <productname>PostgreSQL</> do not need Although indexes in <productname>PostgreSQL</> do not need
maintenance and tuning, it is still important to check maintenance and tuning, it is still important to check
......
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/installation.sgml,v 1.138 2003/08/04 04:03:03 tgl Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/installation.sgml,v 1.139 2003/08/31 17:32:19 petere Exp $ -->
<chapter id="installation"> <chapter id="installation">
<title><![%standalone-include[<productname>PostgreSQL</>]]> <title><![%standalone-include[<productname>PostgreSQL</>]]>
...@@ -383,6 +383,7 @@ JAVACMD=$JAVA_HOME/bin/java ...@@ -383,6 +383,7 @@ JAVACMD=$JAVA_HOME/bin/java
<para> <para>
<indexterm> <indexterm>
<primary>pg_dumpall</primary> <primary>pg_dumpall</primary>
<secondary>use during upgrade</secondary>
</indexterm> </indexterm>
To back up your database installation, type: To back up your database installation, type:
...@@ -875,8 +876,8 @@ JAVACMD=$JAVA_HOME/bin/java ...@@ -875,8 +876,8 @@ JAVACMD=$JAVA_HOME/bin/java
<term><option>--with-pam</option></term> <term><option>--with-pam</option></term>
<listitem> <listitem>
<para> <para>
Build with <acronym>PAM</> (Pluggable Authentication Modules) Build with <acronym>PAM</><indexterm><primary>PAM</></>
support. (Pluggable Authentication Modules) support.
</para> </para>
</listitem> </listitem>
</varlistentry> </varlistentry>
...@@ -1163,7 +1164,7 @@ All of PostgreSQL is successfully made. Ready to install. ...@@ -1163,7 +1164,7 @@ All of PostgreSQL is successfully made. Ready to install.
<title>Shared Libraries</title> <title>Shared Libraries</title>
<indexterm> <indexterm>
<primary>shared libraries</primary> <primary>shared library</primary>
</indexterm> </indexterm>
<para> <para>
...@@ -1284,7 +1285,6 @@ set path = ( /usr/local/pgsql/bin $path ) ...@@ -1284,7 +1285,6 @@ set path = ( /usr/local/pgsql/bin $path )
<para> <para>
<indexterm> <indexterm>
<primary><envar>MANPATH</envar></primary> <primary><envar>MANPATH</envar></primary>
<seealso>man pages</seealso>
</indexterm> </indexterm>
To enable your system to find the <application>man</> To enable your system to find the <application>man</>
documentation, you need to add lines like the following to a documentation, you need to add lines like the following to a
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/Attic/jdbc.sgml,v 1.47 2003/08/07 05:06:40 barry Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/jdbc.sgml,v 1.48 2003/08/31 17:32:19 petere Exp $
--> -->
<chapter id="jdbc"> <chapter id="jdbc">
<title><acronym>JDBC</acronym> Interface</title> <title><acronym>JDBC</acronym> Interface</title>
<indexterm zone="jdbc">
<primary>JDBC</primary>
</indexterm>
<indexterm zone="jdbc">
<primary>Java</primary>
</indexterm>
<para> <para>
<acronym>JDBC</acronym> is a core <acronym>API</acronym> of Java 1.1 and later. <acronym>JDBC</acronym> is a core <acronym>API</acronym> of Java 1.1 and later.
It provides a standard set of It provides a standard set of
...@@ -66,6 +74,14 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/jdbc.sgml,v 1.47 2003/08/07 05:06:40 ...@@ -66,6 +74,14 @@ $Header: /cvsroot/pgsql/doc/src/sgml/Attic/jdbc.sgml,v 1.47 2003/08/07 05:06:40
<sect2 id="jdbc-classpath"> <sect2 id="jdbc-classpath">
<title>Setting up the Class Path</title> <title>Setting up the Class Path</title>
<indexterm zone="jdbc-classpath">
<primary>class path</primary>
</indexterm>
<indexterm zone="jdbc-classpath">
<primary>CLASSPATH</primary>
</indexterm>
<para> <para>
To use the driver, the JAR archive (named To use the driver, the JAR archive (named
<filename>postgresql.jar</filename> if you built from source, otherwise <filename>postgresql.jar</filename> if you built from source, otherwise
...@@ -316,6 +332,18 @@ db.close(); ...@@ -316,6 +332,18 @@ db.close();
<sect1 id="jdbc-query"> <sect1 id="jdbc-query">
<title>Issuing a Query and Processing the Result</title> <title>Issuing a Query and Processing the Result</title>
<indexterm zone="jdbc-query">
<primary>Statement</primary>
</indexterm>
<indexterm zone="jdbc-query">
<primary>PreparedStatement</primary>
</indexterm>
<indexterm zone="jdbc-query">
<primary>ResultSet</primary>
</indexterm>
<para> <para>
Any time you want to issue <acronym>SQL</acronym> statements to Any time you want to issue <acronym>SQL</acronym> statements to
the database, you require a <classname>Statement</classname> or the database, you require a <classname>Statement</classname> or
...@@ -681,6 +709,16 @@ st.close(); ...@@ -681,6 +709,16 @@ st.close();
<sect1 id="jdbc-binary-data"> <sect1 id="jdbc-binary-data">
<title>Storing Binary Data</title> <title>Storing Binary Data</title>
<indexterm zone="jdbc-binary-data">
<primary>bytea</primary>
<secondary sortas="JDBC">in JDBC</secondary>
</indexterm>
<indexterm zone="jdbc-binary-data">
<primary>large object</primary>
<secondary sortas="JDBC">in JDBC</secondary>
</indexterm>
<para> <para>
<application>PostgreSQL</application> provides two distinct ways to <application>PostgreSQL</application> provides two distinct ways to
store binary data. Binary data can be stored in a table using store binary data. Binary data can be stored in a table using
...@@ -2597,6 +2635,11 @@ public void unlink(int oid) throws SQLException ...@@ -2597,6 +2635,11 @@ public void unlink(int oid) throws SQLException
<sect1 id="jdbc-thread"> <sect1 id="jdbc-thread">
<title>Using the Driver in a Multithreaded or a Servlet Environment</title> <title>Using the Driver in a Multithreaded or a Servlet Environment</title>
<indexterm zone="jdbc-thread">
<primary>threads</primary>
<secondary sortas="JDBC">with JDBC</secondary>
</indexterm>
<para> <para>
A problem with many <acronym>JDBC</acronym> drivers is that only A problem with many <acronym>JDBC</acronym> drivers is that only
one thread can use a <classname>Connection</classname> at any one one thread can use a <classname>Connection</classname> at any one
...@@ -2645,6 +2688,15 @@ public void unlink(int oid) throws SQLException ...@@ -2645,6 +2688,15 @@ public void unlink(int oid) throws SQLException
<sect1 id="jdbc-datasource"> <sect1 id="jdbc-datasource">
<title>Connection Pools and Data Sources</title> <title>Connection Pools and Data Sources</title>
<indexterm zone="jdbc-datasource">
<primary>connection pool</primary>
<secondary sortas="JDBC">in JDBC</secondary>
</indexterm>
<indexterm zone="jdbc-datasource">
<primary>DataSource</primary>
</indexterm>
<para> <para>
<acronym>JDBC</> 2 introduced standard connection pooling features in an <acronym>JDBC</> 2 introduced standard connection pooling features in an
add-on <acronym>API</> known as the <acronym>JDBC</acronym> 2.0 Optional add-on <acronym>API</> known as the <acronym>JDBC</acronym> 2.0 Optional
...@@ -3031,6 +3083,10 @@ try { ...@@ -3031,6 +3083,10 @@ try {
<sect2 id="jdbc-jndi"> <sect2 id="jdbc-jndi">
<title>Data Sources and <acronym>JNDI</acronym></title> <title>Data Sources and <acronym>JNDI</acronym></title>
<indexterm zone="jdbc-jndi">
<primary>JNDI</primary>
</indexterm>
<para> <para>
All the <literal>ConnectionPoolDataSource</literal> and All the <literal>ConnectionPoolDataSource</literal> and
<literal>DataSource</literal> implementations can be stored <literal>DataSource</literal> implementations can be stored
......
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/keywords.sgml,v 2.9 2003/06/12 07:49:43 momjian Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/keywords.sgml,v 2.10 2003/08/31 17:32:19 petere Exp $ -->
<appendix id="sql-keywords-appendix"> <appendix id="sql-keywords-appendix">
<title><acronym>SQL</acronym> Key Words</title> <title><acronym>SQL</acronym> Key Words</title>
<indexterm zone="sql-keywords-appendix"> <indexterm zone="sql-keywords-appendix">
<primary>key words</primary> <primary>key word</primary>
<secondary>list of</secondary> <secondary>list of</secondary>
</indexterm> </indexterm>
......
...@@ -125,8 +125,8 @@ ...@@ -125,8 +125,8 @@
<para> <para>
The <function>pg_lo_*</function> commands are interfaces to the The <function>pg_lo_*</function> commands are interfaces to the
large object features of large object features of
<ProductName>PostgreSQL</ProductName>.<indexterm><primary>Large <ProductName>PostgreSQL</ProductName>.<indexterm><primary>large
Object</></> The functions are designed to mimic the analogous file object</><secondary>in pgctl</></> The functions are designed to mimic the analogous file
system functions in the standard Unix file system interface. The system functions in the standard Unix file system interface. The
<function>pg_lo_*</function> commands should be used within a <function>pg_lo_*</function> commands should be used within a
<command>BEGIN</command>/<command>COMMIT</command> transaction <command>BEGIN</command>/<command>COMMIT</command> transaction
...@@ -1043,12 +1043,12 @@ pg_listen <parameter>conn</parameter> <parameter>notifyName</parameter> <optiona ...@@ -1043,12 +1043,12 @@ pg_listen <parameter>conn</parameter> <parameter>notifyName</parameter> <optiona
message bearing the given name arrives from the server. This message bearing the given name arrives from the server. This
occurs when any <productname>PostgreSQL</productname> client occurs when any <productname>PostgreSQL</productname> client
application issues a application issues a
<command>NOTIFY</command><indexterm><primary>NOTIFY</><secondary>in <command>NOTIFY</command><indexterm><primary>NOTIFY</><secondary
pgtcl</></> command referencing that name. The command string is sortas="pgtcl">in pgtcl</></> command referencing that name. The
executed from the Tcl idle loop. That is the normal idle state of command string is executed from the Tcl idle loop. That is the
an application written with Tk. In non-Tk Tcl shells, you can normal idle state of an application written with Tk. In non-Tk Tcl
execute <function>update</function> or <function>vwait</function> shells, you can execute <function>update</function> or
to cause the idle loop to be entered. <function>vwait</function> to cause the idle loop to be entered.
</para> </para>
<para> <para>
......
This diff is collapsed.
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/lobj.sgml,v 1.29 2003/06/21 21:51:33 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/lobj.sgml,v 1.30 2003/08/31 17:32:19 petere Exp $
--> -->
<chapter id="largeObjects"> <chapter id="largeObjects">
...@@ -113,6 +113,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/lobj.sgml,v 1.29 2003/06/21 21:51:33 tgl Ex ...@@ -113,6 +113,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/lobj.sgml,v 1.29 2003/06/21 21:51:33 tgl Ex
<synopsis> <synopsis>
Oid lo_creat(PGconn *conn, int mode); Oid lo_creat(PGconn *conn, int mode);
</synopsis> </synopsis>
<indexterm><primary>lo_creat</></>
creates a new large object. creates a new large object.
<replaceable class="parameter">mode</replaceable> is a bit mask <replaceable class="parameter">mode</replaceable> is a bit mask
describing several different attributes of the new describing several different attributes of the new
...@@ -143,6 +144,7 @@ inv_oid = lo_creat(INV_READ|INV_WRITE); ...@@ -143,6 +144,7 @@ inv_oid = lo_creat(INV_READ|INV_WRITE);
<synopsis> <synopsis>
Oid lo_import(PGconn *conn, const char *filename); Oid lo_import(PGconn *conn, const char *filename);
</synopsis> </synopsis>
<indexterm><primary>lo_import</></>
<replaceable class="parameter">filename</replaceable> <replaceable class="parameter">filename</replaceable>
specifies the operating system name of specifies the operating system name of
the file to be imported as a large object. the file to be imported as a large object.
...@@ -159,6 +161,7 @@ Oid lo_import(PGconn *conn, const char *filename); ...@@ -159,6 +161,7 @@ Oid lo_import(PGconn *conn, const char *filename);
<synopsis> <synopsis>
int lo_export(PGconn *conn, Oid lobjId, const char *filename); int lo_export(PGconn *conn, Oid lobjId, const char *filename);
</synopsis> </synopsis>
<indexterm><primary>lo_export</></>
The <parameter>lobjId</parameter> argument specifies the OID of the large The <parameter>lobjId</parameter> argument specifies the OID of the large
object to export and the <parameter>filename</parameter> argument specifies object to export and the <parameter>filename</parameter> argument specifies
the operating system name name of the file. the operating system name name of the file.
...@@ -173,6 +176,7 @@ int lo_export(PGconn *conn, Oid lobjId, const char *filename); ...@@ -173,6 +176,7 @@ int lo_export(PGconn *conn, Oid lobjId, const char *filename);
<synopsis> <synopsis>
int lo_open(PGconn *conn, Oid lobjId, int mode); int lo_open(PGconn *conn, Oid lobjId, int mode);
</synopsis> </synopsis>
<indexterm><primary>lo_open</></>
The <parameter>lobjId</parameter> argument specifies the OID of the large The <parameter>lobjId</parameter> argument specifies the OID of the large
object to open. The <parameter>mode</parameter> bits control whether the object to open. The <parameter>mode</parameter> bits control whether the
object is opened for reading (<symbol>INV_READ</>), writing (<symbol>INV_WRITE</symbol>), or object is opened for reading (<symbol>INV_READ</>), writing (<symbol>INV_WRITE</symbol>), or
...@@ -194,10 +198,13 @@ int lo_open(PGconn *conn, Oid lobjId, int mode); ...@@ -194,10 +198,13 @@ int lo_open(PGconn *conn, Oid lobjId, int mode);
<synopsis> <synopsis>
int lo_write(PGconn *conn, int fd, const char *buf, size_t len); int lo_write(PGconn *conn, int fd, const char *buf, size_t len);
</synopsis> </synopsis>
writes <parameter>len</parameter> bytes from <parameter>buf</parameter> to large object <parameter>fd</>. The <parameter>fd</parameter> <indexterm><primary>lo_write</></> writes
argument must have been returned by a previous <function>lo_open</function>. <parameter>len</parameter> bytes from <parameter>buf</parameter>
The number of bytes actually written is returned. In to large object <parameter>fd</>. The <parameter>fd</parameter>
the event of an error, the return value is negative. argument must have been returned by a previous
<function>lo_open</function>. The number of bytes actually
written is returned. In the event of an error, the return value
is negative.
</para> </para>
</sect2> </sect2>
...@@ -209,10 +216,13 @@ int lo_write(PGconn *conn, int fd, const char *buf, size_t len); ...@@ -209,10 +216,13 @@ int lo_write(PGconn *conn, int fd, const char *buf, size_t len);
<synopsis> <synopsis>
int lo_read(PGconn *conn, int fd, char *buf, size_t len); int lo_read(PGconn *conn, int fd, char *buf, size_t len);
</synopsis> </synopsis>
reads <parameter>len</parameter> bytes from large object <parameter>fd</parameter> into <parameter>buf</parameter>. The <parameter>fd</parameter> <indexterm><primary>lo_read</></> reads
argument must have been returned by a previous <function>lo_open</function>. <parameter>len</parameter> bytes from large object
The number of bytes actually read is returned. In <parameter>fd</parameter> into <parameter>buf</parameter>. The
the event of an error, the return value is negative. <parameter>fd</parameter> argument must have been returned by a
previous <function>lo_open</function>. The number of bytes
actually read is returned. In the event of an error, the return
value is negative.
</para> </para>
</sect2> </sect2>
...@@ -225,10 +235,14 @@ int lo_read(PGconn *conn, int fd, char *buf, size_t len); ...@@ -225,10 +235,14 @@ int lo_read(PGconn *conn, int fd, char *buf, size_t len);
<synopsis> <synopsis>
int lo_lseek(PGconn *conn, int fd, int offset, int whence); int lo_lseek(PGconn *conn, int fd, int offset, int whence);
</synopsis> </synopsis>
This function moves the current location pointer for the <indexterm><primary>lo_lseek</></> This function moves the
large object described by <parameter>fd</> to the new location specified current location pointer for the large object described by
by <parameter>offset</>. The valid values for <parameter>whence</> are <parameter>fd</> to the new location specified by
<symbol>SEEK_SET</> (seek from object start), <symbol>SEEK_CUR</> (seek from current position), and <symbol>SEEK_END</> (seek from object end). The return value is the new location pointer. <parameter>offset</>. The valid values for <parameter>whence</>
are <symbol>SEEK_SET</> (seek from object start),
<symbol>SEEK_CUR</> (seek from current position), and
<symbol>SEEK_END</> (seek from object end). The return value is
the new location pointer.
</para> </para>
</sect2> </sect2>
...@@ -241,7 +255,8 @@ int lo_lseek(PGconn *conn, int fd, int offset, int whence); ...@@ -241,7 +255,8 @@ int lo_lseek(PGconn *conn, int fd, int offset, int whence);
<synopsis> <synopsis>
int lo_tell(PGconn *conn, int fd); int lo_tell(PGconn *conn, int fd);
</synopsis> </synopsis>
If there is an error, the return value is negative. <indexterm><primary>lo_tell</></> If there is an error, the
return value is negative.
</para> </para>
</sect2> </sect2>
...@@ -253,9 +268,10 @@ int lo_tell(PGconn *conn, int fd); ...@@ -253,9 +268,10 @@ int lo_tell(PGconn *conn, int fd);
<synopsis> <synopsis>
int lo_close(PGconn *conn, int fd); int lo_close(PGconn *conn, int fd);
</synopsis> </synopsis>
where <parameter>fd</> is a large object descriptor returned by <indexterm><primary>lo_close</></> where <parameter>fd</> is a
<function>lo_open</function>. On success, <function>lo_close</function> large object descriptor returned by <function>lo_open</function>.
returns zero. On error, the return value is negative. On success, <function>lo_close</function> returns zero. On
error, the return value is negative.
</para> </para>
<para> <para>
...@@ -272,8 +288,10 @@ int lo_close(PGconn *conn, int fd); ...@@ -272,8 +288,10 @@ int lo_close(PGconn *conn, int fd);
<synopsis> <synopsis>
int lo_unlink(PGconn *conn, Oid lobjId); int lo_unlink(PGconn *conn, Oid lobjId);
</synopsis> </synopsis>
The <parameter>lobjId</parameter> argument specifies the OID of the large <indexterm><primary>lo_unlink</></> The
object to remove. In the event of an error, the return value is negative. <parameter>lobjId</parameter> argument specifies the OID of the
large object to remove. In the event of an error, the return
value is negative.
</para> </para>
</sect2> </sect2>
...@@ -284,11 +302,13 @@ int lo_unlink(PGconn *conn, Oid lobjId); ...@@ -284,11 +302,13 @@ int lo_unlink(PGconn *conn, Oid lobjId);
<title>Server-side Functions</title> <title>Server-side Functions</title>
<para> <para>
There are two built-in server-side functions, <function>lo_import</function> There are two built-in server-side functions,
and <function>lo_export</function>, for large object access, which are available for use <function>lo_import</function><indexterm><primary>lo_import</></>
in <acronym>SQL</acronym> and
commands. <function>lo_export</function>,<indexterm><primary>lo_export</></>
Here is an example of their use: for large object access, which are available for use in
<acronym>SQL</acronym> commands. Here is an example of their
use:
<programlisting> <programlisting>
CREATE TABLE image ( CREATE TABLE image (
name text, name text,
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/maintenance.sgml,v 1.23 2003/06/18 12:19:11 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/maintenance.sgml,v 1.24 2003/08/31 17:32:19 petere Exp $
--> -->
<chapter id="maintenance"> <chapter id="maintenance">
<title>Routine Database Maintenance Tasks</title> <title>Routine Database Maintenance Tasks</title>
<indexterm zone="maintenance">
<primary>maintenance</primary>
</indexterm>
<para> <para>
There are a few routine maintenance chores that must be performed on There are a few routine maintenance chores that must be performed on
a regular basis to keep a <productname>PostgreSQL</productname> a regular basis to keep a <productname>PostgreSQL</productname>
...@@ -158,6 +162,15 @@ $Header: /cvsroot/pgsql/doc/src/sgml/maintenance.sgml,v 1.23 2003/06/18 12:19:11 ...@@ -158,6 +162,15 @@ $Header: /cvsroot/pgsql/doc/src/sgml/maintenance.sgml,v 1.23 2003/06/18 12:19:11
<sect2 id="vacuum-for-statistics"> <sect2 id="vacuum-for-statistics">
<title>Updating planner statistics</title> <title>Updating planner statistics</title>
<indexterm zone="vacuum-for-statistics">
<primary>statistics</primary>
<secondary>of the planner</secondary>
</indexterm>
<indexterm zone="vacuum-for-statistics">
<primary>ANALYZE</primary>
</indexterm>
<para> <para>
The <productname>PostgreSQL</productname> query planner relies on The <productname>PostgreSQL</productname> query planner relies on
statistical information about the contents of tables in order to statistical information about the contents of tables in order to
...@@ -396,7 +409,8 @@ VACUUM ...@@ -396,7 +409,8 @@ VACUUM
<title>Log File Maintenance</title> <title>Log File Maintenance</title>
<indexterm zone="logfile-maintenance"> <indexterm zone="logfile-maintenance">
<primary>log files</primary> <primary>server log</primary>
<secondary>log file maintenance</secondary>
</indexterm> </indexterm>
<para> <para>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/manage-ag.sgml,v 2.27 2003/03/25 16:15:37 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/manage-ag.sgml,v 2.28 2003/08/31 17:32:19 petere Exp $
--> -->
<chapter id="managing-databases"> <chapter id="managing-databases">
...@@ -19,6 +19,10 @@ $Header: /cvsroot/pgsql/doc/src/sgml/manage-ag.sgml,v 2.27 2003/03/25 16:15:37 p ...@@ -19,6 +19,10 @@ $Header: /cvsroot/pgsql/doc/src/sgml/manage-ag.sgml,v 2.27 2003/03/25 16:15:37 p
<sect1 id="manage-ag-overview"> <sect1 id="manage-ag-overview">
<title>Overview</title> <title>Overview</title>
<indexterm zone="manage-ag-overview">
<primary>schema</primary>
</indexterm>
<para> <para>
A database is a named collection of <acronym>SQL</acronym> objects A database is a named collection of <acronym>SQL</acronym> objects
(<quote>database objects</quote>). Generally, every database (<quote>database objects</quote>). Generally, every database
...@@ -70,8 +74,8 @@ $Header: /cvsroot/pgsql/doc/src/sgml/manage-ag.sgml,v 2.27 2003/03/25 16:15:37 p ...@@ -70,8 +74,8 @@ $Header: /cvsroot/pgsql/doc/src/sgml/manage-ag.sgml,v 2.27 2003/03/25 16:15:37 p
</para> </para>
<para> <para>
Databases are created with the SQL command Databases are created with the SQL command <command>CREATE
<command>CREATE DATABASE</command>: DATABASE</command>:<indexterm><primary>CREATE DATABASE</></>
<synopsis> <synopsis>
CREATE DATABASE <replaceable>name</>; CREATE DATABASE <replaceable>name</>;
</synopsis> </synopsis>
...@@ -93,9 +97,10 @@ CREATE DATABASE <replaceable>name</>; ...@@ -93,9 +97,10 @@ CREATE DATABASE <replaceable>name</>;
question remains how the <emphasis>first</> database at any given question remains how the <emphasis>first</> database at any given
site can be created. The first database is always created by the site can be created. The first database is always created by the
<command>initdb</> command when the data storage area is <command>initdb</> command when the data storage area is
initialized. (See <xref linkend="creating-cluster">.) initialized. (See <xref linkend="creating-cluster">.) This
This database is called <literal>template1</>. So to create the database is called
first <quote>real</> database you can connect to <literal>template1</>.<indexterm><primary>template1</></> So to
create the first <quote>real</> database you can connect to
<literal>template1</>. <literal>template1</>.
</para> </para>
...@@ -112,7 +117,7 @@ CREATE DATABASE <replaceable>name</>; ...@@ -112,7 +117,7 @@ CREATE DATABASE <replaceable>name</>;
<para> <para>
As an extra convenience, there is also a program that you can As an extra convenience, there is also a program that you can
execute from the shell to create new databases, execute from the shell to create new databases,
<command>createdb</>. <command>createdb</>.<indexterm><primary>createdb</></>
<synopsis> <synopsis>
createdb <replaceable class="parameter">dbname</replaceable> createdb <replaceable class="parameter">dbname</replaceable>
...@@ -157,31 +162,33 @@ createdb -O <replaceable>username</> <replaceable>dbname</> ...@@ -157,31 +162,33 @@ createdb -O <replaceable>username</> <replaceable>dbname</>
<para> <para>
<command>CREATE DATABASE</> actually works by copying an existing <command>CREATE DATABASE</> actually works by copying an existing
database. By default, it copies the standard system database named database. By default, it copies the standard system database named
<literal>template1</>. Thus that database is the <quote>template</> <literal>template1</>.<indexterm><primary>template1</></> Thus that
from which new databases are made. If you add objects to database is the <quote>template</> from which new databases are
<literal>template1</>, these objects made. If you add objects to <literal>template1</>, these objects
will be copied into subsequently created user databases. This will be copied into subsequently created user databases. This
behavior allows site-local modifications to the standard set of behavior allows site-local modifications to the standard set of
objects in databases. For example, if you install the procedural objects in databases. For example, if you install the procedural
language <application>PL/pgSQL</> in <literal>template1</>, it will language <application>PL/pgSQL</> in <literal>template1</>, it will
automatically be available in user databases without any extra action automatically be available in user databases without any extra
being taken when those databases are made. action being taken when those databases are made.
</para> </para>
<para> <para>
There is a second standard system database named <literal>template0</>. There is a second standard system database named
This database contains the same data as the initial contents of <literal>template0</>.<indexterm><primary>template0</></> This
<literal>template1</>, that is, only the standard objects predefined by database contains the same data as the initial contents of
your version of <productname>PostgreSQL</productname>. <literal>template1</>, that is, only the standard objects
<literal>template0</> should never be changed predefined by your version of
after <command>initdb</>. By instructing <command>CREATE DATABASE</> to <productname>PostgreSQL</productname>. <literal>template0</>
copy <literal>template0</> instead of <literal>template1</>, you can should never be changed after <command>initdb</>. By instructing
create a <quote>virgin</> user database that contains none of the <command>CREATE DATABASE</> to copy <literal>template0</> instead
site-local additions in <literal>template1</>. This is particularly of <literal>template1</>, you can create a <quote>virgin</> user
handy when restoring a <literal>pg_dump</> dump: the dump script should database that contains none of the site-local additions in
be restored in a virgin database to ensure that one recreates the <literal>template1</>. This is particularly handy when restoring a
correct contents of the dumped database, without any conflicts with <literal>pg_dump</> dump: the dump script should be restored in a
additions that may now be present in <literal>template1</>. virgin database to ensure that one recreates the correct contents
of the dumped database, without any conflicts with additions that
may now be present in <literal>template1</>.
</para> </para>
<para> <para>
...@@ -214,7 +221,7 @@ createdb -T template0 <replaceable>dbname</> ...@@ -214,7 +221,7 @@ createdb -T template0 <replaceable>dbname</>
</para> </para>
<para> <para>
Two useful flags exist in <literal>pg_database</literal> for each Two useful flags exist in <literal>pg_database</literal><indexterm><primary>pg_database</></> for each
database: the columns <literal>datistemplate</literal> and database: the columns <literal>datistemplate</literal> and
<literal>datallowconn</literal>. <literal>datistemplate</literal> <literal>datallowconn</literal>. <literal>datistemplate</literal>
may be set to indicate that a database is intended as a template for may be set to indicate that a database is intended as a template for
...@@ -382,7 +389,8 @@ gmake CPPFLAGS=-DALLOW_ABSOLUTE_DBPATHS all ...@@ -382,7 +389,8 @@ gmake CPPFLAGS=-DALLOW_ABSOLUTE_DBPATHS all
<title>Destroying a Database</title> <title>Destroying a Database</title>
<para> <para>
Databases are destroyed with the command <command>DROP DATABASE</command>: Databases are destroyed with the command <command>DROP
DATABASE</command>:<indexterm><primary>DROP DATABASE</></>
<synopsis> <synopsis>
DROP DATABASE <replaceable>name</>; DROP DATABASE <replaceable>name</>;
</synopsis> </synopsis>
...@@ -403,7 +411,8 @@ DROP DATABASE <replaceable>name</>; ...@@ -403,7 +411,8 @@ DROP DATABASE <replaceable>name</>;
</para> </para>
<para> <para>
For convenience, there is also a shell program to drop databases: For convenience, there is also a shell program to drop
databases:<indexterm><primary>dropdb</></>
<synopsis> <synopsis>
dropdb <replaceable class="parameter">dbname</replaceable> dropdb <replaceable class="parameter">dbname</replaceable>
</synopsis> </synopsis>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/monitoring.sgml,v 1.20 2003/04/04 03:03:53 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/monitoring.sgml,v 1.21 2003/08/31 17:32:19 petere Exp $
--> -->
<chapter id="monitoring"> <chapter id="monitoring">
<title>Monitoring Database Activity</title> <title>Monitoring Database Activity</title>
<indexterm zone="monitoring">
<primary>monitoring</primary>
<secondary>database activity</secondary>
</indexterm>
<indexterm zone="monitoring">
<primary>database activity</primary>
<secondary>monitoring</secondary>
</indexterm>
<para> <para>
A database administrator frequently wonders, <quote>What is the system A database administrator frequently wonders, <quote>What is the system
doing right now?</quote> doing right now?</quote>
...@@ -589,6 +599,11 @@ SELECT pg_stat_get_backend_pid(s.backendid) AS procpid, ...@@ -589,6 +599,11 @@ SELECT pg_stat_get_backend_pid(s.backendid) AS procpid,
<sect1 id="monitoring-locks"> <sect1 id="monitoring-locks">
<title>Viewing Locks</title> <title>Viewing Locks</title>
<indexterm zone="monitoring-locks">
<primary>lock</primary>
<secondary>monitoring</secondary>
</indexterm>
<para> <para>
Another useful tool for monitoring database activity is the Another useful tool for monitoring database activity is the
<literal>pg_locks</literal> system table. It allows the <literal>pg_locks</literal> system table. It allows the
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/mvcc.sgml,v 2.35 2003/03/25 16:15:37 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/mvcc.sgml,v 2.36 2003/08/31 17:32:19 petere Exp $
--> -->
<chapter id="mvcc"> <chapter id="mvcc">
...@@ -22,6 +22,10 @@ $Header: /cvsroot/pgsql/doc/src/sgml/mvcc.sgml,v 2.35 2003/03/25 16:15:37 petere ...@@ -22,6 +22,10 @@ $Header: /cvsroot/pgsql/doc/src/sgml/mvcc.sgml,v 2.35 2003/03/25 16:15:37 petere
<sect1 id="mvcc-intro"> <sect1 id="mvcc-intro">
<title>Introduction</title> <title>Introduction</title>
<indexterm>
<primary>MVCC</primary>
</indexterm>
<para> <para>
Unlike traditional database systems which use locks for concurrency control, Unlike traditional database systems which use locks for concurrency control,
<productname>PostgreSQL</productname> <productname>PostgreSQL</productname>
...@@ -57,6 +61,10 @@ $Header: /cvsroot/pgsql/doc/src/sgml/mvcc.sgml,v 2.35 2003/03/25 16:15:37 petere ...@@ -57,6 +61,10 @@ $Header: /cvsroot/pgsql/doc/src/sgml/mvcc.sgml,v 2.35 2003/03/25 16:15:37 petere
<sect1 id="transaction-iso"> <sect1 id="transaction-iso">
<title>Transaction Isolation</title> <title>Transaction Isolation</title>
<indexterm>
<primary>transaction isolation</primary>
</indexterm>
<para> <para>
The <acronym>SQL</acronym> standard defines four levels of The <acronym>SQL</acronym> standard defines four levels of
transaction isolation in terms of three phenomena that must be transaction isolation in terms of three phenomena that must be
...@@ -108,7 +116,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/mvcc.sgml,v 2.35 2003/03/25 16:15:37 petere ...@@ -108,7 +116,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/mvcc.sgml,v 2.35 2003/03/25 16:15:37 petere
<para> <para>
<indexterm> <indexterm>
<primary>isolation levels</primary> <primary>transaction isolation level</primary>
</indexterm> </indexterm>
The four transaction isolation levels and the corresponding The four transaction isolation levels and the corresponding
behaviors are described in <xref linkend="mvcc-isolevel-table">. behaviors are described in <xref linkend="mvcc-isolevel-table">.
...@@ -206,7 +214,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/mvcc.sgml,v 2.35 2003/03/25 16:15:37 petere ...@@ -206,7 +214,7 @@ $Header: /cvsroot/pgsql/doc/src/sgml/mvcc.sgml,v 2.35 2003/03/25 16:15:37 petere
<title>Read Committed Isolation Level</title> <title>Read Committed Isolation Level</title>
<indexterm> <indexterm>
<primary>isolation levels</primary> <primary>transaction isolation level</primary>
<secondary>read committed</secondary> <secondary>read committed</secondary>
</indexterm> </indexterm>
...@@ -292,7 +300,7 @@ COMMIT; ...@@ -292,7 +300,7 @@ COMMIT;
<title>Serializable Isolation Level</title> <title>Serializable Isolation Level</title>
<indexterm> <indexterm>
<primary>isolation levels</primary> <primary>transaction isolation level</primary>
<secondary>serializable</secondary> <secondary>serializable</secondary>
</indexterm> </indexterm>
...@@ -376,7 +384,7 @@ ERROR: Can't serialize access due to concurrent update ...@@ -376,7 +384,7 @@ ERROR: Can't serialize access due to concurrent update
<title>Explicit Locking</title> <title>Explicit Locking</title>
<indexterm> <indexterm>
<primary>locking</primary> <primary>lock</primary>
</indexterm> </indexterm>
<para> <para>
...@@ -394,6 +402,10 @@ ERROR: Can't serialize access due to concurrent update ...@@ -394,6 +402,10 @@ ERROR: Can't serialize access due to concurrent update
<sect2 id="locking-tables"> <sect2 id="locking-tables">
<title>Table-Level Locks</title> <title>Table-Level Locks</title>
<indexterm zone="locking-tables">
<primary>LOCK</primary>
</indexterm>
<para> <para>
The list below shows the available lock modes and the contexts in The list below shows the available lock modes and the contexts in
which they are used automatically by which they are used automatically by
...@@ -644,6 +656,10 @@ ERROR: Can't serialize access due to concurrent update ...@@ -644,6 +656,10 @@ ERROR: Can't serialize access due to concurrent update
<sect2 id="locking-deadlocks"> <sect2 id="locking-deadlocks">
<title>Deadlocks</title> <title>Deadlocks</title>
<indexterm zone="locking-deadlocks">
<primary>deadlock</primary>
</indexterm>
<para> <para>
The use of explicit locking can increase the likelyhood of The use of explicit locking can increase the likelyhood of
<firstterm>deadlocks</>, wherein two (or more) transactions each <firstterm>deadlocks</>, wherein two (or more) transactions each
...@@ -813,6 +829,11 @@ UPDATE accounts SET balance = balance - 100.00 WHERE acctnum = 22222; ...@@ -813,6 +829,11 @@ UPDATE accounts SET balance = balance - 100.00 WHERE acctnum = 22222;
<sect1 id="locking-indexes"> <sect1 id="locking-indexes">
<title>Locking and Indexes</title> <title>Locking and Indexes</title>
<indexterm zone="locking-indexes">
<primary>index</primary>
<secondary>locks</secondary>
</indexterm>
<para> <para>
Though <productname>PostgreSQL</productname> Though <productname>PostgreSQL</productname>
provides nonblocking read/write access to table provides nonblocking read/write access to table
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/perform.sgml,v 1.30 2003/06/25 02:07:33 momjian Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/perform.sgml,v 1.31 2003/08/31 17:32:19 petere Exp $
--> -->
<chapter id="performance-tips"> <chapter id="performance-tips">
...@@ -15,6 +15,14 @@ $Header: /cvsroot/pgsql/doc/src/sgml/perform.sgml,v 1.30 2003/06/25 02:07:33 mom ...@@ -15,6 +15,14 @@ $Header: /cvsroot/pgsql/doc/src/sgml/perform.sgml,v 1.30 2003/06/25 02:07:33 mom
<sect1 id="using-explain"> <sect1 id="using-explain">
<title>Using <command>EXPLAIN</command></title> <title>Using <command>EXPLAIN</command></title>
<indexterm zone="using-explain">
<primary>EXPLAIN</primary>
</indexterm>
<indexterm zone="using-explain">
<primary>query plan</primary>
</indexterm>
<para> <para>
<productname>PostgreSQL</productname> devises a <firstterm>query <productname>PostgreSQL</productname> devises a <firstterm>query
plan</firstterm> for each query it is given. Choosing the right plan</firstterm> for each query it is given. Choosing the right
...@@ -336,6 +344,11 @@ EXPLAIN ANALYZE SELECT * FROM tenk1 t1, tenk2 t2 WHERE t1.unique1 &lt; 50 AND t1 ...@@ -336,6 +344,11 @@ EXPLAIN ANALYZE SELECT * FROM tenk1 t1, tenk2 t2 WHERE t1.unique1 &lt; 50 AND t1
<sect1 id="planner-stats"> <sect1 id="planner-stats">
<title>Statistics Used by the Planner</title> <title>Statistics Used by the Planner</title>
<indexterm zone="planner-stats">
<primary>statistics</primary>
<secondary>of the planner</secondary>
</indexterm>
<para> <para>
As we saw in the previous section, the query planner needs to estimate As we saw in the previous section, the query planner needs to estimate
the number of rows retrieved by a query in order to make good choices the number of rows retrieved by a query in order to make good choices
...@@ -381,6 +394,10 @@ SELECT relname, relkind, reltuples, relpages FROM pg_class WHERE relname LIKE 't ...@@ -381,6 +394,10 @@ SELECT relname, relkind, reltuples, relpages FROM pg_class WHERE relname LIKE 't
since it does not read every row of the table. since it does not read every row of the table.
</para> </para>
<indexterm>
<primary>pg_statistic</primary>
</indexterm>
<para> <para>
Most queries retrieve only a fraction of the rows in a table, due Most queries retrieve only a fraction of the rows in a table, due
to having <literal>WHERE</> clauses that restrict the rows to be examined. to having <literal>WHERE</> clauses that restrict the rows to be examined.
...@@ -393,6 +410,10 @@ SELECT relname, relkind, reltuples, relpages FROM pg_class WHERE relname LIKE 't ...@@ -393,6 +410,10 @@ SELECT relname, relkind, reltuples, relpages FROM pg_class WHERE relname LIKE 't
and are always approximate even when freshly updated. and are always approximate even when freshly updated.
</para> </para>
<indexterm>
<primary>pg_stats</primary>
</indexterm>
<para> <para>
Rather than look at <structname>pg_statistic</structname> directly, Rather than look at <structname>pg_statistic</structname> directly,
it's better to look at its view <structname>pg_stats</structname> it's better to look at its view <structname>pg_stats</structname>
...@@ -538,6 +559,11 @@ SELECT attname, n_distinct, most_common_vals FROM pg_stats WHERE tablename = 'ro ...@@ -538,6 +559,11 @@ SELECT attname, n_distinct, most_common_vals FROM pg_stats WHERE tablename = 'ro
<sect1 id="explicit-joins"> <sect1 id="explicit-joins">
<title>Controlling the Planner with Explicit <literal>JOIN</> Clauses</title> <title>Controlling the Planner with Explicit <literal>JOIN</> Clauses</title>
<indexterm zone="explicit-joins">
<primary>join</primary>
<secondary>controlling the order</secondary>
</indexterm>
<para> <para>
It is possible It is possible
to control the query planner to some extent by using the explicit <literal>JOIN</> to control the query planner to some extent by using the explicit <literal>JOIN</>
...@@ -700,6 +726,10 @@ SELECT * FROM x, y, a, b, c WHERE something AND somethingelse; ...@@ -700,6 +726,10 @@ SELECT * FROM x, y, a, b, c WHERE something AND somethingelse;
<sect2 id="disable-autocommit"> <sect2 id="disable-autocommit">
<title>Disable Autocommit</title> <title>Disable Autocommit</title>
<indexterm zone="disable-autocommit">
<primary>autocommit</primary>
</indexterm>
<para> <para>
Turn off autocommit and just do one commit at Turn off autocommit and just do one commit at
the end. (In plain SQL, this means issuing <command>BEGIN</command> the end. (In plain SQL, this means issuing <command>BEGIN</command>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/plperl.sgml,v 2.19 2003/04/07 01:29:25 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/plperl.sgml,v 2.20 2003/08/31 17:32:19 petere Exp $
--> -->
<chapter id="plperl"> <chapter id="plperl">
...@@ -73,11 +73,12 @@ CREATE FUNCTION perl_max (integer, integer) RETURNS integer AS ' ...@@ -73,11 +73,12 @@ CREATE FUNCTION perl_max (integer, integer) RETURNS integer AS '
</para> </para>
<para> <para>
If an SQL null value is passed to a function, the argument value If an SQL null value<indexterm><primary>null value</><secondary
will appear as <quote>undefined</> in Perl. The above function sortas="PL/Perl">in PL/Perl</></indexterm> is passed to a function,
definition will not behave very nicely with null inputs (in fact, the argument value will appear as <quote>undefined</> in Perl. The
it will act as though they are zeroes). We could add above function definition will not behave very nicely with null
<literal>STRICT</> to the function definition to make inputs (in fact, it will act as though they are zeroes). We could
add <literal>STRICT</> to the function definition to make
<productname>PostgreSQL</productname> do something more reasonable: <productname>PostgreSQL</productname> do something more reasonable:
if a null value is passed, the function will not be called at all, if a null value is passed, the function will not be called at all,
but will just return a null result automatically. Alternatively, but will just return a null result automatically. Alternatively,
...@@ -170,7 +171,7 @@ SELECT name, empcomp(employee) FROM employee; ...@@ -170,7 +171,7 @@ SELECT name, empcomp(employee) FROM employee;
mirror sites</ulink>). This module makes available a mirror sites</ulink>). This module makes available a
<acronym>DBI</>-compliant database-handle named <acronym>DBI</>-compliant database-handle named
<varname>$pg_dbh</varname> that can be used to perform queries <varname>$pg_dbh</varname> that can be used to perform queries
with normal <acronym>DBI</> syntax. with normal <acronym>DBI</> syntax.<indexterm><primary>DBI</></indexterm>
</para> </para>
<para> <para>
...@@ -180,7 +181,7 @@ SELECT name, empcomp(employee) FROM employee; ...@@ -180,7 +181,7 @@ SELECT name, empcomp(employee) FROM employee;
<varlistentry> <varlistentry>
<indexterm> <indexterm>
<primary>elog</primary> <primary>elog</primary>
<secondary>PL/Perl</secondary> <secondary>in PL/Perl</secondary>
</indexterm> </indexterm>
<term><function>elog</> <replaceable>level</replaceable>, <replaceable>msg</replaceable></term> <term><function>elog</> <replaceable>level</replaceable>, <replaceable>msg</replaceable></term>
...@@ -202,6 +203,11 @@ SELECT name, empcomp(employee) FROM employee; ...@@ -202,6 +203,11 @@ SELECT name, empcomp(employee) FROM employee;
<sect1 id="plperl-trusted"> <sect1 id="plperl-trusted">
<title>Trusted and Untrusted PL/Perl</title> <title>Trusted and Untrusted PL/Perl</title>
<indexterm zone="plperl-trusted">
<primary>trusted</primary>
<secondary>PL/Perl</secondary>
</indexterm>
<para> <para>
Normally, PL/Perl is installed as a <quote>trusted</> programming Normally, PL/Perl is installed as a <quote>trusted</> programming
language named <literal>plperl</>. In this setup, certain Perl language named <literal>plperl</>. In this setup, certain Perl
...@@ -231,13 +237,14 @@ CREATE FUNCTION badfunc() RETURNS integer AS ' ...@@ -231,13 +237,14 @@ CREATE FUNCTION badfunc() RETURNS integer AS '
<para> <para>
Sometimes it is desirable to write Perl functions that are not Sometimes it is desirable to write Perl functions that are not
restricted. For example, one might want a Perl function that restricted. For example, one might want a Perl function that sends
sends mail. To handle these cases, PL/Perl can also be installed mail. To handle these cases, PL/Perl can also be installed as an
as an <quote>untrusted</> language (usually called <quote>untrusted</> language (usually called
<application>PL/PerlU</application>). In this case the full Perl language is <application>PL/PerlU</application><indexterm><primary>PL/PerlU</></indexterm>).
available. If the <command>createlang</command> program is used to In this case the full Perl language is available. If the
install the language, the language name <literal>plperlu</literal> <command>createlang</command> program is used to install the
will select the untrusted PL/Perl variant. language, the language name <literal>plperlu</literal> will select
the untrusted PL/Perl variant.
</para> </para>
<para> <para>
...@@ -272,7 +279,9 @@ CREATE FUNCTION badfunc() RETURNS integer AS ' ...@@ -272,7 +279,9 @@ CREATE FUNCTION badfunc() RETURNS integer AS '
<listitem> <listitem>
<para> <para>
PL/Perl cannot be used to write trigger functions. PL/Perl cannot be used to write trigger
functions.<indexterm><primary>trigger</><secondary>in
PL/Perl</></indexterm>
</para> </para>
</listitem> </listitem>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/plpgsql.sgml,v 1.20 2003/08/09 22:50:22 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/plpgsql.sgml,v 1.21 2003/08/31 17:32:19 petere Exp $
--> -->
<chapter id="plpgsql"> <chapter id="plpgsql">
...@@ -63,20 +63,22 @@ $Header: /cvsroot/pgsql/doc/src/sgml/plpgsql.sgml,v 1.20 2003/08/09 22:50:22 tgl ...@@ -63,20 +63,22 @@ $Header: /cvsroot/pgsql/doc/src/sgml/plpgsql.sgml,v 1.20 2003/08/09 22:50:22 tgl
</para> </para>
<para> <para>
As each expression and <acronym>SQL</acronym> command is first used As each expression and <acronym>SQL</acronym> command is first
in the function, the <application>PL/pgSQL</> interpreter creates used in the function, the <application>PL/pgSQL</> interpreter
a prepared execution plan (using the <acronym>SPI</acronym> creates a prepared execution plan (using the
manager's <function>SPI_prepare</function> and <acronym>SPI</acronym> manager's <function>SPI_prepare</function>
<function>SPI_saveplan</function> functions). Subsequent visits and <function>SPI_saveplan</function>
to that expression or command reuse the prepared plan. Thus, a functions).<indexterm><primary>preparing a query</><secondary>in
function with conditional code that contains many statements for PL/pgSQL</></> Subsequent visits to that expression or command
which execution plans might be required will only prepare and save reuse the prepared plan. Thus, a function with conditional code
those plans that are really used during the lifetime of the that contains many statements for which execution plans might be
database connection. This can substantially reduce the total required will only prepare and save those plans that are really
amount of time required to parse, and generate execution plans for the used during the lifetime of the database connection. This can
statements in a <application>PL/pgSQL</> function. A disadvantage is substantially reduce the total amount of time required to parse,
that errors in a specific expression or command may not be detected and generate execution plans for the statements in a
until that part of the function is reached in execution. <application>PL/pgSQL</> function. A disadvantage is that errors
in a specific expression or command may not be detected until that
part of the function is reached in execution.
</para> </para>
<para> <para>
...@@ -196,7 +198,7 @@ END; ...@@ -196,7 +198,7 @@ END;
and return the <quote>polymorphic</> types and return the <quote>polymorphic</> types
<type>anyelement</type> and <type>anyarray</type>. The actual <type>anyelement</type> and <type>anyarray</type>. The actual
datatypes handled by a polymorphic function can vary from call to datatypes handled by a polymorphic function can vary from call to
call, as discussed in <xref linkend="types-polymorphic">. call, as discussed in <xref linkend="extend-types-polymorphic">.
An example is shown in <xref linkend="plpgsql-declaration-aliases">. An example is shown in <xref linkend="plpgsql-declaration-aliases">.
</para> </para>
...@@ -563,7 +565,7 @@ END; ...@@ -563,7 +565,7 @@ END;
or <type>anyarray</type>), a special parameter <literal>$0</literal> or <type>anyarray</type>), a special parameter <literal>$0</literal>
is created. Its datatype is the actual return type of the function, is created. Its datatype is the actual return type of the function,
as deduced from the actual input types (see <xref as deduced from the actual input types (see <xref
linkend="types-polymorphic">). linkend="extend-types-polymorphic">).
This allows the function to access its actual return type This allows the function to access its actual return type
as shown in <xref linkend="plpgsql-declaration-type">. as shown in <xref linkend="plpgsql-declaration-type">.
<literal>$0</literal> is initialized to NULL and can be modified by <literal>$0</literal> is initialized to NULL and can be modified by
...@@ -903,6 +905,11 @@ tax := subtotal * 0.06; ...@@ -903,6 +905,11 @@ tax := subtotal * 0.06;
<sect2 id="plpgsql-select-into"> <sect2 id="plpgsql-select-into">
<title><command>SELECT INTO</command></title> <title><command>SELECT INTO</command></title>
<indexterm zone="plpgsql-select-into">
<primary>SELECT INTO</primary>
<secondary>in PL/pgSQL</secondary>
</indexterm>
<para> <para>
The result of a <command>SELECT</command> command yielding multiple columns (but The result of a <command>SELECT</command> command yielding multiple columns (but
only one row) can be assigned to a record variable, row-type only one row) can be assigned to a record variable, row-type
...@@ -1097,14 +1104,16 @@ EXECUTE ''UPDATE tbl SET '' ...@@ -1097,14 +1104,16 @@ EXECUTE ''UPDATE tbl SET ''
<para> <para>
This example shows use of the functions This example shows use of the functions
<function>quote_ident(<type>text</type>)</function> and <function>quote_ident(<type>text</type>)</function> and
<function>quote_literal(<type>text</type>)</function>. <function>quote_literal(<type>text</type>)</function>.<indexterm><primary>quote_ident</><secondary>use
Variables containing column and table identifiers should be in
passed to function <function>quote_ident</function>. PL/pgSQL</></indexterm><indexterm><primary>quote_literal</><secondary>use
Variables containing values that should be literal strings in the in PL/pgSQL</></indexterm> Variables containing column and table
constructed command should be passed to identifiers should be passed to function
<function>quote_literal</function>. Both take the <function>quote_ident</function>. Variables containing values
appropriate steps to return the input text enclosed in double that should be literal strings in the constructed command should
or single quotes respectively, with any embedded special characters be passed to <function>quote_literal</function>. Both take the
appropriate steps to return the input text enclosed in double or
single quotes respectively, with any embedded special characters
properly escaped. properly escaped.
</para> </para>
...@@ -1517,6 +1526,11 @@ END IF; ...@@ -1517,6 +1526,11 @@ END IF;
<sect2 id="plpgsql-control-structures-loops"> <sect2 id="plpgsql-control-structures-loops">
<title>Simple Loops</title> <title>Simple Loops</title>
<indexterm zone="plpgsql-control-structures-loops">
<primary>loop</primary>
<secondary>in PL/pgSQL</secondary>
</indexterm>
<para> <para>
With the <literal>LOOP</>, <literal>EXIT</>, <literal>WHILE</>, With the <literal>LOOP</>, <literal>EXIT</>, <literal>WHILE</>,
and <literal>FOR</> statements, you can arrange for your and <literal>FOR</> statements, you can arrange for your
...@@ -1734,6 +1748,11 @@ END LOOP; ...@@ -1734,6 +1748,11 @@ END LOOP;
<sect1 id="plpgsql-cursors"> <sect1 id="plpgsql-cursors">
<title>Cursors</title> <title>Cursors</title>
<indexterm zone="plpgsql-cursors">
<primary>cursor</primary>
<secondary>in PL/pgSQL</secondary>
</indexterm>
<para> <para>
Rather than executing a whole query at once, it is possible to set Rather than executing a whole query at once, it is possible to set
up a <firstterm>cursor</> that encapsulates the query, and then read up a <firstterm>cursor</> that encapsulates the query, and then read
...@@ -2096,6 +2115,11 @@ RAISE EXCEPTION ''Inexistent ID --> %'', user_id; ...@@ -2096,6 +2115,11 @@ RAISE EXCEPTION ''Inexistent ID --> %'', user_id;
<sect1 id="plpgsql-trigger"> <sect1 id="plpgsql-trigger">
<title>Trigger Procedures</title> <title>Trigger Procedures</title>
<indexterm zone="plpgsql-trigger">
<primary>trigger</primary>
<secondary>in PL/pgSQL</secondary>
</indexterm>
<para> <para>
<application>PL/pgSQL</application> can be used to define trigger <application>PL/pgSQL</application> can be used to define trigger
procedures. A trigger procedure is created with the procedures. A trigger procedure is created with the
...@@ -2302,10 +2326,12 @@ CREATE TRIGGER emp_stamp BEFORE INSERT OR UPDATE ON emp ...@@ -2302,10 +2326,12 @@ CREATE TRIGGER emp_stamp BEFORE INSERT OR UPDATE ON emp
<indexterm zone="plpgsql-porting"> <indexterm zone="plpgsql-porting">
<primary>Oracle</primary> <primary>Oracle</primary>
<secondary>porting from PL/SQL to PL/pgSQL</secondary>
</indexterm> </indexterm>
<indexterm zone="plpgsql-porting"> <indexterm zone="plpgsql-porting">
<primary>PL/SQL</primary> <primary>PL/SQL (Oracle)</primary>
<secondary>porting to PL/pgSQL</secondary>
</indexterm> </indexterm>
<para> <para>
...@@ -2546,7 +2572,8 @@ END; ...@@ -2546,7 +2572,8 @@ END;
with <literal>OUT</> parameters and string manipulation. with <literal>OUT</> parameters and string manipulation.
<productname>PostgreSQL</> does not have an <productname>PostgreSQL</> does not have an
<function>instr</function> function, but you can work around it <function>instr</function> function, but you can work around it
using a combination of other functions. In <xref using a combination of other
functions.<indexterm><primary>instr</></indexterm> In <xref
linkend="plpgsql-porting-appendix"> there is a linkend="plpgsql-porting-appendix"> there is a
<application>PL/pgSQL</application> implementation of <application>PL/pgSQL</application> implementation of
<function>instr</function> that you can use to make your porting <function>instr</function> that you can use to make your porting
......
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/plpython.sgml,v 1.18 2003/07/01 13:52:29 tgl Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/plpython.sgml,v 1.19 2003/08/31 17:32:19 petere Exp $ -->
<chapter id="plpython"> <chapter id="plpython">
<title>PL/Python - Python Procedural Language</title> <title>PL/Python - Python Procedural Language</title>
...@@ -68,9 +68,10 @@ def __plpython_procedure_myfunc_23456(): ...@@ -68,9 +68,10 @@ def __plpython_procedure_myfunc_23456():
<para> <para>
If you do not provide a return value, Python returns the default If you do not provide a return value, Python returns the default
<symbol>None</symbol>. The <symbol>None</symbol>. The language module translates Python's
language module translates Python's <symbol>None</symbol> into the <symbol>None</symbol> into the SQL null
SQL null value. value.<indexterm><primary>null value</><secondary
sortas="PL/Python">in PL/Python</></indexterm>
</para> </para>
<para> <para>
...@@ -87,7 +88,9 @@ def __plpython_procedure_myfunc_23456(): ...@@ -87,7 +88,9 @@ def __plpython_procedure_myfunc_23456():
The global dictionary <varname>SD</varname> is available to store The global dictionary <varname>SD</varname> is available to store
data between function calls. This variable is private static data. data between function calls. This variable is private static data.
The global dictionary <varname>GD</varname> is public data, The global dictionary <varname>GD</varname> is public data,
available to all Python functions within a session. Use with care. available to all Python functions within a session. Use with
care.<indexterm><primary>global data</><secondary>in
PL/Python</></indexterm>
</para> </para>
<para> <para>
...@@ -102,6 +105,11 @@ def __plpython_procedure_myfunc_23456(): ...@@ -102,6 +105,11 @@ def __plpython_procedure_myfunc_23456():
<sect1 id="plpython-trigger"> <sect1 id="plpython-trigger">
<title>Trigger Functions</title> <title>Trigger Functions</title>
<indexterm zone="plpython-trigger">
<primary>trigger</primary>
<secondary>in PL/Python</secondary>
</indexterm>
<para> <para>
When a function is used in a trigger, the dictionary When a function is used in a trigger, the dictionary
<literal>TD</literal> contains trigger-related values. The trigger <literal>TD</literal> contains trigger-related values. The trigger
...@@ -146,7 +154,8 @@ def __plpython_procedure_myfunc_23456(): ...@@ -146,7 +154,8 @@ def __plpython_procedure_myfunc_23456():
<literal>plpy.error("msg")</literal>, and <literal>plpy.error("msg")</literal>, and
<literal>plpy.fatal("msg")</literal>. They are mostly equivalent <literal>plpy.fatal("msg")</literal>. They are mostly equivalent
to calling <literal>elog(<replaceable>LEVEL</>, "msg")</literal> to calling <literal>elog(<replaceable>LEVEL</>, "msg")</literal>
from C code. <function>plpy.error</function> and from C code.<indexterm><primary>elog</><secondary>in
PL/Python</></indexterm> <function>plpy.error</function> and
<function>plpy.fatal</function> actually raise a Python exception <function>plpy.fatal</function> actually raise a Python exception
which, if uncaught, causes the PL/Python module to call which, if uncaught, causes the PL/Python module to call
<literal>elog(ERROR, msg)</literal> when the function handler <literal>elog(ERROR, msg)</literal> when the function handler
...@@ -187,10 +196,11 @@ foo = rv[i]["my_column"] ...@@ -187,10 +196,11 @@ foo = rv[i]["my_column"]
</para> </para>
<para> <para>
The second function, <function>plpy.prepare</function>, prepares the <indexterm><primary>preparing a query</><secondary>in PL/Python</></indexterm>
execution plan for a query. It is called with a query string and a The second function, <function>plpy.prepare</function>, prepares
list of parameter types, if you have parameter references in the the execution plan for a query. It is called with a query string
query. For example: and a list of parameter types, if you have parameter references in
the query. For example:
<programlisting> <programlisting>
plan = plpy.prepare("SELECT last_name FROM my_users WHERE first_name = $1", [ "text" ]) plan = plpy.prepare("SELECT last_name FROM my_users WHERE first_name = $1", [ "text" ])
</programlisting> </programlisting>
...@@ -235,7 +245,8 @@ CREATE FUNCTION usesavedplan() RETURNS trigger AS ' ...@@ -235,7 +245,8 @@ CREATE FUNCTION usesavedplan() RETURNS trigger AS '
</para> </para>
</sect1> </sect1>
<!-- NOT CURRENTLY SUPPORTED <![IGNORE[
<!-- NOT CURRENTLY SUPPORTED -->
<sect1 id="plpython-trusted"> <sect1 id="plpython-trusted">
<title>Restricted Environment</title> <title>Restricted Environment</title>
...@@ -259,6 +270,6 @@ CREATE FUNCTION usesavedplan() RETURNS trigger AS ' ...@@ -259,6 +270,6 @@ CREATE FUNCTION usesavedplan() RETURNS trigger AS '
</para> </para>
</sect1> </sect1>
--> ]]>
</chapter> </chapter>
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/pltcl.sgml,v 2.24 2003/06/22 16:17:00 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/pltcl.sgml,v 2.25 2003/08/31 17:32:19 petere Exp $
--> -->
<chapter id="pltcl"> <chapter id="pltcl">
...@@ -190,6 +190,11 @@ CREATE FUNCTION overpaid(employee) RETURNS boolean AS ' ...@@ -190,6 +190,11 @@ CREATE FUNCTION overpaid(employee) RETURNS boolean AS '
<sect1 id="pltcl-global"> <sect1 id="pltcl-global">
<title>Global Data in PL/Tcl</title> <title>Global Data in PL/Tcl</title>
<indexterm zone="pltcl-global">
<primary>global data</primary>
<secondary>in PL/Tcl</secondary>
</indexterm>
<para> <para>
Sometimes it Sometimes it
is useful to have some global data that is held between two is useful to have some global data that is held between two
...@@ -298,8 +303,10 @@ spi_exec -array C "SELECT * FROM pg_class" { ...@@ -298,8 +303,10 @@ spi_exec -array C "SELECT * FROM pg_class" {
<term><function>spi_prepare</function> <replaceable>query</replaceable> <replaceable>typelist</replaceable></term> <term><function>spi_prepare</function> <replaceable>query</replaceable> <replaceable>typelist</replaceable></term>
<listitem> <listitem>
<para> <para>
Prepares and saves a query plan for later execution. The saved plan Prepares and saves a query plan for later execution. The
will be retained for the life of the current session. saved plan will be retained for the life of the current
session.<indexterm><primary>preparing a query</><secondary>in
PL/Tcl</></>
</para> </para>
<para> <para>
The query may use parameters, that is, placeholders for The query may use parameters, that is, placeholders for
...@@ -437,7 +444,7 @@ SELECT 'doesn''t' AS ret ...@@ -437,7 +444,7 @@ SELECT 'doesn''t' AS ret
<varlistentry> <varlistentry>
<indexterm> <indexterm>
<primary>elog</primary> <primary>elog</primary>
<secondary>PL/Tcl</secondary> <secondary>in PL/Tcl</secondary>
</indexterm> </indexterm>
<term><function>elog</> <replaceable>level</replaceable> <replaceable>msg</replaceable></term> <term><function>elog</> <replaceable>level</replaceable> <replaceable>msg</replaceable></term>
<listitem> <listitem>
...@@ -466,7 +473,7 @@ SELECT 'doesn''t' AS ret ...@@ -466,7 +473,7 @@ SELECT 'doesn''t' AS ret
<title>Trigger Procedures in PL/Tcl</title> <title>Trigger Procedures in PL/Tcl</title>
<indexterm> <indexterm>
<primary>triggers</primary> <primary>trigger</primary>
<secondary>in PL/Tcl</secondary> <secondary>in PL/Tcl</secondary>
</indexterm> </indexterm>
......
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/queries.sgml,v 1.22 2003/08/14 23:13:27 tgl Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/queries.sgml,v 1.23 2003/08/31 17:32:19 petere Exp $ -->
<chapter id="queries"> <chapter id="queries">
<title>Queries</title> <title>Queries</title>
<indexterm zone="queries">
<primary>query</primary>
</indexterm>
<indexterm zone="queries">
<primary>SELECT</primary>
</indexterm>
<para> <para>
The previous chapters explained how to create tables, how to fill The previous chapters explained how to create tables, how to fill
them with data, and how to manipulate that data. Now we finally them with data, and how to manipulate that data. Now we finally
...@@ -73,6 +81,10 @@ SELECT random(); ...@@ -73,6 +81,10 @@ SELECT random();
<sect1 id="queries-table-expressions"> <sect1 id="queries-table-expressions">
<title>Table Expressions</title> <title>Table Expressions</title>
<indexterm zone="queries-table-expressions">
<primary>table expression</primary>
</indexterm>
<para> <para>
A <firstterm>table expression</firstterm> computes a table. The A <firstterm>table expression</firstterm> computes a table. The
table expression contains a <literal>FROM</> clause that is table expression contains a <literal>FROM</> clause that is
...@@ -112,6 +124,10 @@ FROM <replaceable>table_reference</replaceable> <optional>, <replaceable>table_r ...@@ -112,6 +124,10 @@ FROM <replaceable>table_reference</replaceable> <optional>, <replaceable>table_r
overall table expression. overall table expression.
</para> </para>
<indexterm>
<primary>ONLY</primary>
</indexterm>
<para> <para>
When a table reference names a table that is the supertable of a When a table reference names a table that is the supertable of a
table inheritance hierarchy, the table reference produces rows of table inheritance hierarchy, the table reference produces rows of
...@@ -125,7 +141,7 @@ FROM <replaceable>table_reference</replaceable> <optional>, <replaceable>table_r ...@@ -125,7 +141,7 @@ FROM <replaceable>table_reference</replaceable> <optional>, <replaceable>table_r
<title>Joined Tables</title> <title>Joined Tables</title>
<indexterm zone="queries-join"> <indexterm zone="queries-join">
<primary>joins</primary> <primary>join</primary>
</indexterm> </indexterm>
<para> <para>
...@@ -141,10 +157,14 @@ FROM <replaceable>table_reference</replaceable> <optional>, <replaceable>table_r ...@@ -141,10 +157,14 @@ FROM <replaceable>table_reference</replaceable> <optional>, <replaceable>table_r
<term>Cross join</term> <term>Cross join</term>
<indexterm> <indexterm>
<primary>joins</primary> <primary>join</primary>
<secondary>cross</secondary> <secondary>cross</secondary>
</indexterm> </indexterm>
<indexterm>
<primary>cross join</primary>
</indexterm>
<listitem> <listitem>
<synopsis> <synopsis>
<replaceable>T1</replaceable> CROSS JOIN <replaceable>T2</replaceable> <replaceable>T1</replaceable> CROSS JOIN <replaceable>T2</replaceable>
...@@ -175,10 +195,14 @@ FROM <replaceable>table_reference</replaceable> <optional>, <replaceable>table_r ...@@ -175,10 +195,14 @@ FROM <replaceable>table_reference</replaceable> <optional>, <replaceable>table_r
<term>Qualified joins</term> <term>Qualified joins</term>
<indexterm> <indexterm>
<primary>joins</primary> <primary>join</primary>
<secondary>outer</secondary> <secondary>outer</secondary>
</indexterm> </indexterm>
<indexterm>
<primary>outer join</primary>
</indexterm>
<listitem> <listitem>
<synopsis> <synopsis>
<replaceable>T1</replaceable> { <optional>INNER</optional> | { LEFT | RIGHT | FULL } <optional>OUTER</optional> } JOIN <replaceable>T2</replaceable> ON <replaceable>boolean_expression</replaceable> <replaceable>T1</replaceable> { <optional>INNER</optional> | { LEFT | RIGHT | FULL } <optional>OUTER</optional> } JOIN <replaceable>T2</replaceable> ON <replaceable>boolean_expression</replaceable>
...@@ -227,9 +251,12 @@ FROM <replaceable>table_reference</replaceable> <optional>, <replaceable>table_r ...@@ -227,9 +251,12 @@ FROM <replaceable>table_reference</replaceable> <optional>, <replaceable>table_r
<para> <para>
<indexterm> <indexterm>
<primary>joins</primary> <primary>join</primary>
<secondary>natural</secondary> <secondary>natural</secondary>
</indexterm> </indexterm>
<indexterm>
<primary>natural join</primary>
</indexterm>
Finally, <literal>NATURAL</> is a shorthand form of Finally, <literal>NATURAL</> is a shorthand form of
<literal>USING</>: it forms a <literal>USING</> list <literal>USING</>: it forms a <literal>USING</> list
consisting of exactly those column names that appear in both consisting of exactly those column names that appear in both
...@@ -256,10 +283,14 @@ FROM <replaceable>table_reference</replaceable> <optional>, <replaceable>table_r ...@@ -256,10 +283,14 @@ FROM <replaceable>table_reference</replaceable> <optional>, <replaceable>table_r
<term><literal>LEFT OUTER JOIN</></term> <term><literal>LEFT OUTER JOIN</></term>
<indexterm> <indexterm>
<primary>joins</primary> <primary>join</primary>
<secondary>left</secondary> <secondary>left</secondary>
</indexterm> </indexterm>
<indexterm>
<primary>left join</primary>
</indexterm>
<listitem> <listitem>
<para> <para>
First, an inner join is performed. Then, for each row in First, an inner join is performed. Then, for each row in
...@@ -274,6 +305,15 @@ FROM <replaceable>table_reference</replaceable> <optional>, <replaceable>table_r ...@@ -274,6 +305,15 @@ FROM <replaceable>table_reference</replaceable> <optional>, <replaceable>table_r
<varlistentry> <varlistentry>
<term><literal>RIGHT OUTER JOIN</></term> <term><literal>RIGHT OUTER JOIN</></term>
<indexterm>
<primary>join</primary>
<secondary>right</secondary>
</indexterm>
<indexterm>
<primary>right join</primary>
</indexterm>
<listitem> <listitem>
<para> <para>
First, an inner join is performed. Then, for each row in First, an inner join is performed. Then, for each row in
...@@ -424,13 +464,13 @@ FROM <replaceable>table_reference</replaceable> <optional>, <replaceable>table_r ...@@ -424,13 +464,13 @@ FROM <replaceable>table_reference</replaceable> <optional>, <replaceable>table_r
<title>Table and Column Aliases</title> <title>Table and Column Aliases</title>
<indexterm zone="queries-table-aliases"> <indexterm zone="queries-table-aliases">
<primary>label</primary> <primary>alias</primary>
<secondary>table</secondary> <secondary>in the FROM clause</secondary>
</indexterm> </indexterm>
<indexterm> <indexterm>
<primary>alias</primary> <primary>label</primary>
<see>label</see> <see>alias</see>
</indexterm> </indexterm>
<para> <para>
...@@ -530,7 +570,7 @@ SELECT a.* FROM (my_table AS a JOIN your_table AS b ON ...) AS c ...@@ -530,7 +570,7 @@ SELECT a.* FROM (my_table AS a JOIN your_table AS b ON ...) AS c
<title>Subqueries</title> <title>Subqueries</title>
<indexterm zone="queries-subqueries"> <indexterm zone="queries-subqueries">
<primary>subqueries</primary> <primary>subquery</primary>
</indexterm> </indexterm>
<para> <para>
...@@ -556,6 +596,11 @@ FROM (SELECT * FROM table1) AS alias_name ...@@ -556,6 +596,11 @@ FROM (SELECT * FROM table1) AS alias_name
<indexterm zone="queries-tablefunctions"><primary>table function</></> <indexterm zone="queries-tablefunctions"><primary>table function</></>
<indexterm zone="queries-tablefunctions">
<primary>function</>
<secondary>in the FROM clause</>
</indexterm>
<para> <para>
Table functions are functions that produce a set of rows, made up Table functions are functions that produce a set of rows, made up
of either base data types (scalar types) or composite data types of either base data types (scalar types) or composite data types
...@@ -628,7 +673,7 @@ SELECT * ...@@ -628,7 +673,7 @@ SELECT *
<title>The WHERE Clause</title> <title>The WHERE Clause</title>
<indexterm zone="queries-where"> <indexterm zone="queries-where">
<primary>where</primary> <primary>WHERE</primary>
</indexterm> </indexterm>
<para> <para>
...@@ -716,7 +761,11 @@ SELECT ... FROM fdt WHERE EXISTS (SELECT c1 FROM t2 WHERE c2 > fdt.c1) ...@@ -716,7 +761,11 @@ SELECT ... FROM fdt WHERE EXISTS (SELECT c1 FROM t2 WHERE c2 > fdt.c1)
<title>The GROUP BY and HAVING Clauses</title> <title>The GROUP BY and HAVING Clauses</title>
<indexterm zone="queries-group"> <indexterm zone="queries-group">
<primary>group</primary> <primary>GROUP BY</primary>
</indexterm>
<indexterm zone="queries-group">
<primary>grouping</primary>
</indexterm> </indexterm>
<para> <para>
...@@ -827,6 +876,10 @@ SELECT product_id, p.name, (sum(s.units) * p.price) AS sales ...@@ -827,6 +876,10 @@ SELECT product_id, p.name, (sum(s.units) * p.price) AS sales
column names is also allowed. column names is also allowed.
</para> </para>
<indexterm>
<primary>HAVING</primary>
</indexterm>
<para> <para>
If a table has been grouped using a <literal>GROUP BY</literal> If a table has been grouped using a <literal>GROUP BY</literal>
clause, but then only certain groups are of interest, the clause, but then only certain groups are of interest, the
...@@ -884,7 +937,7 @@ SELECT product_id, p.name, (sum(s.units) * (p.price - p.cost)) AS profit ...@@ -884,7 +937,7 @@ SELECT product_id, p.name, (sum(s.units) * (p.price - p.cost)) AS profit
<title>Select Lists</title> <title>Select Lists</title>
<indexterm> <indexterm>
<primary>select</primary> <primary>SELECT</primary>
<secondary>select list</secondary> <secondary>select list</secondary>
</indexterm> </indexterm>
...@@ -901,6 +954,10 @@ SELECT product_id, p.name, (sum(s.units) * (p.price - p.cost)) AS profit ...@@ -901,6 +954,10 @@ SELECT product_id, p.name, (sum(s.units) * (p.price - p.cost)) AS profit
<sect2 id="queries-select-list-items"> <sect2 id="queries-select-list-items">
<title>Select-List Items</title> <title>Select-List Items</title>
<indexterm>
<primary>*</primary>
</indexterm>
<para> <para>
The simplest kind of select list is <literal>*</literal> which The simplest kind of select list is <literal>*</literal> which
emits all columns that the table expression produces. Otherwise, emits all columns that the table expression produces. Otherwise,
...@@ -944,8 +1001,8 @@ SELECT tbl1.a, tbl2.a, tbl1.b FROM ... ...@@ -944,8 +1001,8 @@ SELECT tbl1.a, tbl2.a, tbl1.b FROM ...
<title>Column Labels</title> <title>Column Labels</title>
<indexterm zone="queries-column-labels"> <indexterm zone="queries-column-labels">
<primary>label</primary> <primary>alias</primary>
<secondary>column</secondary> <secondary>in the select list</secondary>
</indexterm> </indexterm>
<para> <para>
...@@ -981,7 +1038,11 @@ SELECT a AS value, b + c AS sum FROM ... ...@@ -981,7 +1038,11 @@ SELECT a AS value, b + c AS sum FROM ...
<title>DISTINCT</title> <title>DISTINCT</title>
<indexterm zone="queries-distinct"> <indexterm zone="queries-distinct">
<primary>distinct</primary> <primary>DISTINCT</primary>
</indexterm>
<indexterm zone="queries-distinct">
<primary>duplicates</primary>
</indexterm> </indexterm>
<para> <para>
...@@ -997,6 +1058,8 @@ SELECT DISTINCT <replaceable>select_list</replaceable> ... ...@@ -997,6 +1058,8 @@ SELECT DISTINCT <replaceable>select_list</replaceable> ...
</para> </para>
<para> <para>
<indexterm><primary>null value</><secondary sortas="DISTINCT">in
DISTINCT</></indexterm>
Obviously, two rows are considered distinct if they differ in at Obviously, two rows are considered distinct if they differ in at
least one column value. Null values are considered equal in this least one column value. Null values are considered equal in this
comparison. comparison.
...@@ -1035,13 +1098,25 @@ SELECT DISTINCT ON (<replaceable>expression</replaceable> <optional>, <replaceab ...@@ -1035,13 +1098,25 @@ SELECT DISTINCT ON (<replaceable>expression</replaceable> <optional>, <replaceab
<title>Combining Queries</title> <title>Combining Queries</title>
<indexterm zone="queries-union"> <indexterm zone="queries-union">
<primary>union</primary> <primary>UNION</primary>
</indexterm>
<indexterm zone="queries-union">
<primary>INTERSECT</primary>
</indexterm>
<indexterm zone="queries-union">
<primary>EXCEPT</primary>
</indexterm> </indexterm>
<indexterm zone="queries-union"> <indexterm zone="queries-union">
<primary>intersection</primary> <primary>set union</primary>
</indexterm> </indexterm>
<indexterm zone="queries-union"> <indexterm zone="queries-union">
<primary>except</primary> <primary>set intersection</primary>
</indexterm>
<indexterm zone="queries-union">
<primary>set difference</primary>
</indexterm>
<indexterm zone="queries-union">
<primary>set operation</primary>
</indexterm> </indexterm>
<para> <para>
...@@ -1104,7 +1179,10 @@ SELECT DISTINCT ON (<replaceable>expression</replaceable> <optional>, <replaceab ...@@ -1104,7 +1179,10 @@ SELECT DISTINCT ON (<replaceable>expression</replaceable> <optional>, <replaceab
<indexterm zone="queries-order"> <indexterm zone="queries-order">
<primary>sorting</primary> <primary>sorting</primary>
<secondary>query results</secondary> </indexterm>
<indexterm zone="queries-order">
<primary>ORDER BY</primary>
</indexterm> </indexterm>
<para> <para>
...@@ -1173,12 +1251,11 @@ SELECT a AS b FROM table1 ORDER BY a; ...@@ -1173,12 +1251,11 @@ SELECT a AS b FROM table1 ORDER BY a;
<title>LIMIT and OFFSET</title> <title>LIMIT and OFFSET</title>
<indexterm zone="queries-limit"> <indexterm zone="queries-limit">
<primary>limit</primary> <primary>LIMIT</primary>
</indexterm> </indexterm>
<indexterm zone="queries-limit"> <indexterm zone="queries-limit">
<primary>offset</primary> <primary>OFFSET</primary>
<secondary>with query results</secondary>
</indexterm> </indexterm>
<para> <para>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/query.sgml,v 1.32 2003/06/24 23:27:24 momjian Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/query.sgml,v 1.33 2003/08/31 17:32:19 petere Exp $
--> -->
<chapter id="tutorial-sql"> <chapter id="tutorial-sql">
...@@ -87,7 +87,8 @@ $Header: /cvsroot/pgsql/doc/src/sgml/query.sgml,v 1.32 2003/06/24 23:27:24 momji ...@@ -87,7 +87,8 @@ $Header: /cvsroot/pgsql/doc/src/sgml/query.sgml,v 1.32 2003/06/24 23:27:24 momji
</para> </para>
<para> <para>
<indexterm><primary>cluster</primary></indexterm> <indexterm><primary>database cluster</primary></indexterm>
<indexterm><primary>cluster</primary><secondary>of databases</secondary><see>database cluster</see></indexterm>
Tables are grouped into databases, and a collection of databases Tables are grouped into databases, and a collection of databases
managed by a single <productname>PostgreSQL</productname> server managed by a single <productname>PostgreSQL</productname> server
...@@ -562,7 +563,7 @@ SELECT * ...@@ -562,7 +563,7 @@ SELECT *
<title>Aggregate Functions</title> <title>Aggregate Functions</title>
<indexterm zone="tutorial-agg"> <indexterm zone="tutorial-agg">
<primary>aggregate</primary> <primary>aggregate function</primary>
</indexterm> </indexterm>
<para> <para>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/abort.sgml,v 1.13 2003/04/26 23:56:51 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/abort.sgml,v 1.14 2003/08/31 17:32:21 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>abort the current transaction</refpurpose> <refpurpose>abort the current transaction</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-abort">
<primary>ABORT</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
ABORT [ WORK | TRANSACTION ] ABORT [ WORK | TRANSACTION ]
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_aggregate.sgml,v 1.1 2003/06/27 14:45:25 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_aggregate.sgml,v 1.2 2003/08/31 17:32:21 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>change the definition of an aggregate function</refpurpose> <refpurpose>change the definition of an aggregate function</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-alteraggregate">
<primary>ALTER AGGREGATE</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
ALTER AGGREGATE <replaceable>name</replaceable> ( <replaceable>type</replaceable> ) RENAME TO <replaceable>newname</replaceable> ALTER AGGREGATE <replaceable>name</replaceable> ( <replaceable>type</replaceable> ) RENAME TO <replaceable>newname</replaceable>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_conversion.sgml,v 1.1 2003/06/27 14:45:25 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_conversion.sgml,v 1.2 2003/08/31 17:32:21 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>change the definition of a conversion</refpurpose> <refpurpose>change the definition of a conversion</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-alterconversion">
<primary>ALTER CONVERSION</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
ALTER CONVERSION <replaceable>name</replaceable> RENAME TO <replaceable>newname</replaceable> ALTER CONVERSION <replaceable>name</replaceable> RENAME TO <replaceable>newname</replaceable>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_database.sgml,v 1.7 2003/06/27 14:45:25 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_database.sgml,v 1.8 2003/08/31 17:32:21 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>change a database</refpurpose> <refpurpose>change a database</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-alterdatabase">
<primary>ALTER DATABASE</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
ALTER DATABASE <replaceable class="PARAMETER">name</replaceable> SET <replaceable>variable</replaceable> { TO | = } { <replaceable>value</replaceable> | DEFAULT } ALTER DATABASE <replaceable class="PARAMETER">name</replaceable> SET <replaceable>variable</replaceable> { TO | = } { <replaceable>value</replaceable> | DEFAULT }
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_domain.sgml,v 1.7 2003/01/06 00:31:44 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_domain.sgml,v 1.8 2003/08/31 17:32:21 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -8,6 +8,7 @@ PostgreSQL documentation ...@@ -8,6 +8,7 @@ PostgreSQL documentation
<refentrytitle id="sql-alterdomain-title">ALTER DOMAIN</refentrytitle> <refentrytitle id="sql-alterdomain-title">ALTER DOMAIN</refentrytitle>
<refmiscinfo>SQL - Language Statements</refmiscinfo> <refmiscinfo>SQL - Language Statements</refmiscinfo>
</refmeta> </refmeta>
<refnamediv> <refnamediv>
<refname> <refname>
ALTER DOMAIN ALTER DOMAIN
...@@ -16,6 +17,11 @@ PostgreSQL documentation ...@@ -16,6 +17,11 @@ PostgreSQL documentation
change the definition of a domain change the definition of a domain
</refpurpose> </refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-alterdomain">
<primary>ALTER DOMAIN</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<refsynopsisdivinfo> <refsynopsisdivinfo>
<date>2002-11-27</date> <date>2002-11-27</date>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_function.sgml,v 1.1 2003/06/27 14:45:25 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_function.sgml,v 1.2 2003/08/31 17:32:21 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>change the definition of a function</refpurpose> <refpurpose>change the definition of a function</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-alterfunction">
<primary>ALTER FUNCTION</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
ALTER FUNCTION <replaceable>name</replaceable> ( [ <replaceable class="parameter">type</replaceable> [, ...] ] ) RENAME TO <replaceable>newname</replaceable> ALTER FUNCTION <replaceable>name</replaceable> ( [ <replaceable class="parameter">type</replaceable> [, ...] ] ) RENAME TO <replaceable>newname</replaceable>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_group.sgml,v 1.10 2003/06/27 14:45:25 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_group.sgml,v 1.11 2003/08/31 17:32:21 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>change a user group</refpurpose> <refpurpose>change a user group</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-altergroup">
<primary>ALTER GROUP</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
ALTER GROUP <replaceable class="PARAMETER">groupname</replaceable> ADD USER <replaceable class="PARAMETER">username</replaceable> [, ... ] ALTER GROUP <replaceable class="PARAMETER">groupname</replaceable> ADD USER <replaceable class="PARAMETER">username</replaceable> [, ... ]
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_language.sgml,v 1.1 2003/06/27 14:45:25 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_language.sgml,v 1.2 2003/08/31 17:32:21 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>change the definition of a procedural language</refpurpose> <refpurpose>change the definition of a procedural language</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-alterlanguage">
<primary>ALTER LANGUAGE</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
ALTER LANGUAGE <replaceable>name</replaceable> RENAME TO <replaceable>newname</replaceable> ALTER LANGUAGE <replaceable>name</replaceable> RENAME TO <replaceable>newname</replaceable>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_opclass.sgml,v 1.1 2003/06/27 14:45:26 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_opclass.sgml,v 1.2 2003/08/31 17:32:21 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>change the definition of an operator class</refpurpose> <refpurpose>change the definition of an operator class</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-alteropclass">
<primary>ALTER OPERATOR CLASS</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
ALTER OPERATOR CLASS <replaceable>name</replaceable> USING <replaceable class="parameter">index_method</replaceable> RENAME TO <replaceable>newname</replaceable> ALTER OPERATOR CLASS <replaceable>name</replaceable> USING <replaceable class="parameter">index_method</replaceable> RENAME TO <replaceable>newname</replaceable>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_schema.sgml,v 1.1 2003/06/27 14:45:26 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_schema.sgml,v 1.2 2003/08/31 17:32:21 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>change the definition of a schema</refpurpose> <refpurpose>change the definition of a schema</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-alterschema">
<primary>ALTER SCHEMA</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
ALTER SCHEMA <replaceable>name</replaceable> RENAME TO <replaceable>newname</replaceable> ALTER SCHEMA <replaceable>name</replaceable> RENAME TO <replaceable>newname</replaceable>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_sequence.sgml,v 1.2 2003/06/12 07:49:43 momjian Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_sequence.sgml,v 1.3 2003/08/31 17:32:21 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -8,6 +8,7 @@ PostgreSQL documentation ...@@ -8,6 +8,7 @@ PostgreSQL documentation
<refentrytitle id="SQL-ALTERSEQUENCE-TITLE">ALTER SEQUENCE</refentrytitle> <refentrytitle id="SQL-ALTERSEQUENCE-TITLE">ALTER SEQUENCE</refentrytitle>
<refmiscinfo>SQL - Language Statements</refmiscinfo> <refmiscinfo>SQL - Language Statements</refmiscinfo>
</refmeta> </refmeta>
<refnamediv> <refnamediv>
<refname> <refname>
ALTER SEQUENCE ALTER SEQUENCE
...@@ -16,6 +17,11 @@ PostgreSQL documentation ...@@ -16,6 +17,11 @@ PostgreSQL documentation
alter the definition of a sequence generator alter the definition of a sequence generator
</refpurpose> </refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-altersequence">
<primary>ALTER SEQUENCE</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<refsynopsisdivinfo> <refsynopsisdivinfo>
<date>1999-07-20</date> <date>1999-07-20</date>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_table.sgml,v 1.59 2003/04/15 13:25:08 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_table.sgml,v 1.60 2003/08/31 17:32:21 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>change the definition of a table</refpurpose> <refpurpose>change the definition of a table</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-altertable">
<primary>ALTER TABLE</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
ALTER TABLE [ ONLY ] <replaceable class="PARAMETER">table</replaceable> [ * ] ALTER TABLE [ ONLY ] <replaceable class="PARAMETER">table</replaceable> [ * ]
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_trigger.sgml,v 1.4 2003/04/15 13:25:08 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_trigger.sgml,v 1.5 2003/08/31 17:32:21 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>change the definition of a trigger</refpurpose> <refpurpose>change the definition of a trigger</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-altertrigger">
<primary>ALTER TRIGGER</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
ALTER TRIGGER <replaceable class="PARAMETER">trigger</replaceable> ON <replaceable class="PARAMETER">table</replaceable> ALTER TRIGGER <replaceable class="PARAMETER">trigger</replaceable> ON <replaceable class="PARAMETER">table</replaceable>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_user.sgml,v 1.28 2003/06/27 14:45:26 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/alter_user.sgml,v 1.29 2003/08/31 17:32:21 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>change a database user account</refpurpose> <refpurpose>change a database user account</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-alteruser">
<primary>ALTER USER</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
ALTER USER <replaceable class="PARAMETER">username</replaceable> [ [ WITH ] <replaceable class="PARAMETER">option</replaceable> [ ... ] ] ALTER USER <replaceable class="PARAMETER">username</replaceable> [ [ WITH ] <replaceable class="PARAMETER">option</replaceable> [ ... ] ]
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/analyze.sgml,v 1.12 2003/04/15 13:25:08 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/analyze.sgml,v 1.13 2003/08/31 17:32:21 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>collect statistics about a database</refpurpose> <refpurpose>collect statistics about a database</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-analyze">
<primary>ANALYZE</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
ANALYZE [ VERBOSE ] [ <replaceable class="PARAMETER">table</replaceable> [ (<replaceable class="PARAMETER">column</replaceable> [, ...] ) ] ] ANALYZE [ VERBOSE ] [ <replaceable class="PARAMETER">table</replaceable> [ (<replaceable class="PARAMETER">column</replaceable> [, ...] ) ] ]
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/begin.sgml,v 1.24 2003/05/14 03:26:00 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/begin.sgml,v 1.25 2003/08/31 17:32:21 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>start a transaction block</refpurpose> <refpurpose>start a transaction block</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-begin">
<primary>BEGIN</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
BEGIN [ WORK | TRANSACTION ] BEGIN [ WORK | TRANSACTION ]
......
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/ref/checkpoint.sgml,v 1.9 2003/04/15 13:25:08 petere Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/ref/checkpoint.sgml,v 1.10 2003/08/31 17:32:21 petere Exp $ -->
<refentry id="sql-checkpoint"> <refentry id="sql-checkpoint">
<refmeta> <refmeta>
...@@ -11,6 +11,10 @@ ...@@ -11,6 +11,10 @@
<refpurpose>force a transaction log checkpoint</refpurpose> <refpurpose>force a transaction log checkpoint</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-checkpoint">
<primary>CHECKPOINT</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
CHECKPOINT CHECKPOINT
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/close.sgml,v 1.16 2003/08/24 21:02:42 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/close.sgml,v 1.17 2003/08/31 17:32:21 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>close a cursor</refpurpose> <refpurpose>close a cursor</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-close">
<primary>CLOSE</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
CLOSE <replaceable class="PARAMETER">cursor</replaceable> CLOSE <replaceable class="PARAMETER">cursor</replaceable>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/cluster.sgml,v 1.26 2003/04/15 13:25:08 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/cluster.sgml,v 1.27 2003/08/31 17:32:21 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>cluster a table according to an index</refpurpose> <refpurpose>cluster a table according to an index</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-cluster">
<primary>CLUSTER</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
CLUSTER <replaceable class="PARAMETER">indexname</replaceable> ON <replaceable class="PARAMETER">tablename</replaceable> CLUSTER <replaceable class="PARAMETER">indexname</replaceable> ON <replaceable class="PARAMETER">tablename</replaceable>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/clusterdb.sgml,v 1.11 2003/08/17 04:46:59 momjian Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/clusterdb.sgml,v 1.12 2003/08/31 17:32:21 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -15,6 +15,10 @@ PostgreSQL documentation ...@@ -15,6 +15,10 @@ PostgreSQL documentation
<refpurpose>cluster a <productname>PostgreSQL</productname> database</refpurpose> <refpurpose>cluster a <productname>PostgreSQL</productname> database</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="app-clusterdb">
<primary>clusterdb</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<cmdsynopsis> <cmdsynopsis>
<command>clusterdb</command> <command>clusterdb</command>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/comment.sgml,v 1.21 2003/04/15 13:25:08 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/comment.sgml,v 1.22 2003/08/31 17:32:21 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>define or change the comment of an object</refpurpose> <refpurpose>define or change the comment of an object</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-comment">
<primary>COMMENT</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
COMMENT ON COMMENT ON
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/commit.sgml,v 1.15 2003/04/15 13:25:08 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/commit.sgml,v 1.16 2003/08/31 17:32:21 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>commit the current transaction</refpurpose> <refpurpose>commit the current transaction</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-commit">
<primary>COMMIT</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
COMMIT [ WORK | TRANSACTION ] COMMIT [ WORK | TRANSACTION ]
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/copy.sgml,v 1.47 2003/08/17 04:33:02 momjian Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/copy.sgml,v 1.48 2003/08/31 17:32:21 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>copy data between files and tables</refpurpose> <refpurpose>copy data between files and tables</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-copy">
<primary>COPY</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
COPY <replaceable class="parameter">table</replaceable> [ ( <replaceable class="parameter">column</replaceable> [, ...] ) ] COPY <replaceable class="parameter">table</replaceable> [ ( <replaceable class="parameter">column</replaceable> [, ...] ) ]
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_aggregate.sgml,v 1.26 2003/06/27 14:45:26 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_aggregate.sgml,v 1.27 2003/08/31 17:32:21 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>define a new aggregate function</refpurpose> <refpurpose>define a new aggregate function</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-createaggregate">
<primary>CREATE AGGREGATE</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
CREATE AGGREGATE <replaceable class="PARAMETER">name</replaceable> ( CREATE AGGREGATE <replaceable class="PARAMETER">name</replaceable> (
......
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_cast.sgml,v 1.11 2003/04/22 10:08:08 petere Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_cast.sgml,v 1.12 2003/08/31 17:32:21 petere Exp $ -->
<refentry id="SQL-CREATECAST"> <refentry id="SQL-CREATECAST">
<refmeta> <refmeta>
...@@ -11,6 +11,10 @@ ...@@ -11,6 +11,10 @@
<refpurpose>define a user-defined cast</refpurpose> <refpurpose>define a user-defined cast</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-createcast">
<primary>CREATE CAST</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
CREATE CAST (<replaceable>sourcetype</replaceable> AS <replaceable>targettype</replaceable>) CREATE CAST (<replaceable>sourcetype</replaceable> AS <replaceable>targettype</replaceable>)
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_constraint.sgml,v 1.9 2003/04/22 10:08:08 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_constraint.sgml,v 1.10 2003/08/31 17:32:21 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>define a new constraint trigger</refpurpose> <refpurpose>define a new constraint trigger</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-createconstraint">
<primary>CREATE CONSTRAINT</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
CREATE CONSTRAINT TRIGGER <replaceable class="parameter">name</replaceable> CREATE CONSTRAINT TRIGGER <replaceable class="parameter">name</replaceable>
......
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_conversion.sgml,v 1.10 2003/06/27 14:45:26 petere Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_conversion.sgml,v 1.11 2003/08/31 17:32:21 petere Exp $ -->
<refentry id="SQL-CREATECONVERSION"> <refentry id="SQL-CREATECONVERSION">
<refmeta> <refmeta>
...@@ -11,6 +11,10 @@ ...@@ -11,6 +11,10 @@
<refpurpose>define a user-defined conversion</refpurpose> <refpurpose>define a user-defined conversion</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-createconversion">
<primary>CREATE CONVERSION</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
CREATE [DEFAULT] CONVERSION <replaceable>name</replaceable> CREATE [DEFAULT] CONVERSION <replaceable>name</replaceable>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_database.sgml,v 1.34 2003/04/22 10:08:08 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_database.sgml,v 1.35 2003/08/31 17:32:22 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>create a new database</refpurpose> <refpurpose>create a new database</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-createdatabase">
<primary>CREATE DATABASE</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
CREATE DATABASE <replaceable class="PARAMETER">name</replaceable> CREATE DATABASE <replaceable class="PARAMETER">name</replaceable>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_domain.sgml,v 1.13 2003/04/22 10:08:08 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_domain.sgml,v 1.14 2003/08/31 17:32:22 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>define a new domain</refpurpose> <refpurpose>define a new domain</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-createdomain">
<primary>CREATE DOMAIN</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
CREATE DOMAIN <replaceable class="parameter">domainname</replaceable> [AS] <replaceable class="parameter">data_type</replaceable> CREATE DOMAIN <replaceable class="parameter">domainname</replaceable> [AS] <replaceable class="parameter">data_type</replaceable>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_function.sgml,v 1.48 2003/06/27 14:45:26 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_function.sgml,v 1.49 2003/08/31 17:32:22 petere Exp $
--> -->
<refentry id="SQL-CREATEFUNCTION"> <refentry id="SQL-CREATEFUNCTION">
...@@ -13,6 +13,10 @@ $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_function.sgml,v 1.48 2003/06/27 ...@@ -13,6 +13,10 @@ $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_function.sgml,v 1.48 2003/06/27
<refpurpose>define a new function</refpurpose> <refpurpose>define a new function</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-createfunction">
<primary>CREATE FUNCTION</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
CREATE [ OR REPLACE ] FUNCTION <replaceable class="parameter">name</replaceable> ( [ <replaceable class="parameter">argtype</replaceable> [, ...] ] ) CREATE [ OR REPLACE ] FUNCTION <replaceable class="parameter">name</replaceable> ( [ <replaceable class="parameter">argtype</replaceable> [, ...] ] )
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_group.sgml,v 1.11 2003/04/22 10:08:08 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_group.sgml,v 1.12 2003/08/31 17:32:22 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>define a new user group</refpurpose> <refpurpose>define a new user group</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-creategroup">
<primary>CREATE GROUP</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
CREATE GROUP <replaceable class="PARAMETER">name</replaceable> [ [ WITH ] <replaceable class="PARAMETER">option</replaceable> [ ... ] ] CREATE GROUP <replaceable class="PARAMETER">name</replaceable> [ [ WITH ] <replaceable class="PARAMETER">option</replaceable> [ ... ] ]
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_index.sgml,v 1.39 2003/05/28 16:03:55 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_index.sgml,v 1.40 2003/08/31 17:32:22 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>define a new index</refpurpose> <refpurpose>define a new index</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-createindex">
<primary>CREATE INDEX</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
CREATE [ UNIQUE ] INDEX <replaceable class="parameter">index_name</replaceable> ON <replaceable class="parameter">table</replaceable> [ USING <replaceable class="parameter">method</replaceable> ] CREATE [ UNIQUE ] INDEX <replaceable class="parameter">index_name</replaceable> ON <replaceable class="parameter">table</replaceable> [ USING <replaceable class="parameter">method</replaceable> ]
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_language.sgml,v 1.33 2003/06/27 14:45:26 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_language.sgml,v 1.34 2003/08/31 17:32:22 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>define a new procedural language</refpurpose> <refpurpose>define a new procedural language</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-createlanguage">
<primary>CREATE LANGUAGE</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
CREATE [ TRUSTED ] [ PROCEDURAL ] LANGUAGE <replaceable class="parameter">langname</replaceable> CREATE [ TRUSTED ] [ PROCEDURAL ] LANGUAGE <replaceable class="parameter">langname</replaceable>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_opclass.sgml,v 1.8 2003/06/27 14:45:26 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_opclass.sgml,v 1.9 2003/08/31 17:32:22 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>define a new operator class for indexes</refpurpose> <refpurpose>define a new operator class for indexes</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-createopclass">
<primary>CREATE OPERATOR CLASS</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
CREATE OPERATOR CLASS <replaceable class="parameter">name</replaceable> [ DEFAULT ] FOR TYPE <replaceable class="parameter">data_type</replaceable> USING <replaceable class="parameter">index_method</replaceable> AS CREATE OPERATOR CLASS <replaceable class="parameter">name</replaceable> [ DEFAULT ] FOR TYPE <replaceable class="parameter">data_type</replaceable> USING <replaceable class="parameter">index_method</replaceable> AS
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_operator.sgml,v 1.36 2003/08/17 22:09:00 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_operator.sgml,v 1.37 2003/08/31 17:32:22 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>define a new operator</refpurpose> <refpurpose>define a new operator</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-createoperator">
<primary>CREATE OPERATOR</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
CREATE OPERATOR <replaceable>name</replaceable> ( CREATE OPERATOR <replaceable>name</replaceable> (
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_rule.sgml,v 1.39 2003/04/22 10:08:08 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_rule.sgml,v 1.40 2003/08/31 17:32:22 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>define a new rewrite rule</refpurpose> <refpurpose>define a new rewrite rule</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-createrule">
<primary>CREATE RULE</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
CREATE [ OR REPLACE ] RULE <replaceable class="parameter">name</replaceable> AS ON <replaceable class="parameter">event</replaceable> CREATE [ OR REPLACE ] RULE <replaceable class="parameter">name</replaceable> AS ON <replaceable class="parameter">event</replaceable>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_schema.sgml,v 1.6 2003/06/27 14:45:26 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_schema.sgml,v 1.7 2003/08/31 17:32:22 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>define a new schema</refpurpose> <refpurpose>define a new schema</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-createschema">
<primary>CREATE SCHEMA</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
CREATE SCHEMA <replaceable class="parameter">schemaname</replaceable> [ AUTHORIZATION <replaceable class="parameter">username</replaceable> ] [ <replaceable class="parameter">schema_element</replaceable> [ ... ] ] CREATE SCHEMA <replaceable class="parameter">schemaname</replaceable> [ AUTHORIZATION <replaceable class="parameter">username</replaceable> ] [ <replaceable class="parameter">schema_element</replaceable> [ ... ] ]
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_sequence.sgml,v 1.33 2003/04/22 10:08:08 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_sequence.sgml,v 1.34 2003/08/31 17:32:22 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>define a new sequence generator</refpurpose> <refpurpose>define a new sequence generator</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-createsequence">
<primary>CREATE SEQUENCE</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
CREATE [ TEMPORARY | TEMP ] SEQUENCE <replaceable class="parameter">seqname</replaceable> [ INCREMENT [ BY ] <replaceable class="parameter">increment</replaceable> ] CREATE [ TEMPORARY | TEMP ] SEQUENCE <replaceable class="parameter">seqname</replaceable> [ INCREMENT [ BY ] <replaceable class="parameter">increment</replaceable> ]
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_table.sgml,v 1.70 2003/06/12 18:34:06 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_table.sgml,v 1.71 2003/08/31 17:32:22 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>define a new table</refpurpose> <refpurpose>define a new table</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-createtable">
<primary>CREATE TABLE</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE <replaceable class="PARAMETER">table_name</replaceable> ( CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE <replaceable class="PARAMETER">table_name</replaceable> (
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_table_as.sgml,v 1.14 2003/07/01 00:04:31 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_table_as.sgml,v 1.15 2003/08/31 17:32:22 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>create a new table from the results of a query</refpurpose> <refpurpose>create a new table from the results of a query</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-createtableas">
<primary>CREATE TABLE AS</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE <replaceable>table_name</replaceable> [ (<replaceable>column_name</replaceable> [, ...] ) ] CREATE [ [ GLOBAL | LOCAL ] { TEMPORARY | TEMP } ] TABLE <replaceable>table_name</replaceable> [ (<replaceable>column_name</replaceable> [, ...] ) ]
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_trigger.sgml,v 1.34 2003/04/22 10:08:08 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_trigger.sgml,v 1.35 2003/08/31 17:32:22 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>define a new trigger</refpurpose> <refpurpose>define a new trigger</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-createtrigger">
<primary>CREATE TRIGGER</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
CREATE TRIGGER <replaceable class="PARAMETER">name</replaceable> { BEFORE | AFTER } { <replaceable class="PARAMETER">event</replaceable> [ OR ... ] } CREATE TRIGGER <replaceable class="PARAMETER">name</replaceable> { BEFORE | AFTER } { <replaceable class="PARAMETER">event</replaceable> [ OR ... ] }
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_type.sgml,v 1.43 2003/05/09 23:01:44 tgl Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_type.sgml,v 1.44 2003/08/31 17:32:22 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>define a new data type</refpurpose> <refpurpose>define a new data type</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-createtype">
<primary>CREATE TYPE</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
CREATE TYPE <replaceable class="parameter">typename</replaceable> AS CREATE TYPE <replaceable class="parameter">typename</replaceable> AS
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_user.sgml,v 1.26 2003/04/22 10:08:08 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_user.sgml,v 1.27 2003/08/31 17:32:22 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>define a new database user account</refpurpose> <refpurpose>define a new database user account</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-createuser">
<primary>CREATE USER</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
CREATE USER <replaceable class="PARAMETER">username</replaceable> [ [ WITH ] <replaceable class="PARAMETER">option</replaceable> [ ... ] ] CREATE USER <replaceable class="PARAMETER">username</replaceable> [ [ WITH ] <replaceable class="PARAMETER">option</replaceable> [ ... ] ]
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/create_view.sgml,v 1.22 2003/04/22 10:08:08 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/create_view.sgml,v 1.23 2003/08/31 17:32:22 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>define a new view</refpurpose> <refpurpose>define a new view</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-createview">
<primary>CREATE VIEW</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
CREATE [ OR REPLACE ] VIEW <replaceable class="PARAMETER">name</replaceable> [ ( <replaceable CREATE [ OR REPLACE ] VIEW <replaceable class="PARAMETER">name</replaceable> [ ( <replaceable
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/createdb.sgml,v 1.33 2003/05/26 17:50:09 momjian Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/createdb.sgml,v 1.34 2003/08/31 17:32:22 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -15,6 +15,10 @@ PostgreSQL documentation ...@@ -15,6 +15,10 @@ PostgreSQL documentation
<refpurpose>create a new <productname>PostgreSQL</productname> database</refpurpose> <refpurpose>create a new <productname>PostgreSQL</productname> database</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="app-createdb">
<primary>createdb</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<cmdsynopsis> <cmdsynopsis>
<command>createdb</command> <command>createdb</command>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/createlang.sgml,v 1.31 2003/03/24 14:32:51 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/createlang.sgml,v 1.32 2003/08/31 17:32:22 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -15,6 +15,10 @@ PostgreSQL documentation ...@@ -15,6 +15,10 @@ PostgreSQL documentation
<refpurpose>define a new <productname>PostgreSQL</productname> procedural language</refpurpose> <refpurpose>define a new <productname>PostgreSQL</productname> procedural language</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="app-createlang">
<primary>createlang</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<cmdsynopsis> <cmdsynopsis>
<command>createlang</command> <command>createlang</command>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/createuser.sgml,v 1.35 2003/08/17 04:46:59 momjian Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/createuser.sgml,v 1.36 2003/08/31 17:32:22 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -15,6 +15,10 @@ PostgreSQL documentation ...@@ -15,6 +15,10 @@ PostgreSQL documentation
<refpurpose>define a new <productname>PostgreSQL</productname> user account</refpurpose> <refpurpose>define a new <productname>PostgreSQL</productname> user account</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="app-createuser">
<primary>createuser</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<cmdsynopsis> <cmdsynopsis>
<command>createuser</command> <command>createuser</command>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/deallocate.sgml,v 1.2 2003/04/26 23:56:51 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/deallocate.sgml,v 1.3 2003/08/31 17:32:22 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>deallocate a prepared statement</refpurpose> <refpurpose>deallocate a prepared statement</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-deallocate">
<primary>DEALLOCATE</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
DEALLOCATE [ PREPARE ] <replaceable class="parameter">plan_name</replaceable> DEALLOCATE [ PREPARE ] <replaceable class="parameter">plan_name</replaceable>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/declare.sgml,v 1.25 2003/08/24 21:02:42 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/declare.sgml,v 1.26 2003/08/31 17:32:22 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>define a cursor</refpurpose> <refpurpose>define a cursor</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-declare">
<primary>DECLARE</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
DECLARE <replaceable class="parameter">cursorname</replaceable> [ BINARY ] [ INSENSITIVE ] [ [ NO ] SCROLL ] DECLARE <replaceable class="parameter">cursorname</replaceable> [ BINARY ] [ INSENSITIVE ] [ [ NO ] SCROLL ]
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/delete.sgml,v 1.17 2003/04/26 23:56:51 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/delete.sgml,v 1.18 2003/08/31 17:32:22 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>delete rows of a table</refpurpose> <refpurpose>delete rows of a table</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-delete">
<primary>DELETE</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
DELETE FROM [ ONLY ] <replaceable class="PARAMETER">table</replaceable> [ WHERE <replaceable class="PARAMETER">condition</replaceable> ] DELETE FROM [ ONLY ] <replaceable class="PARAMETER">table</replaceable> [ WHERE <replaceable class="PARAMETER">condition</replaceable> ]
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/drop_aggregate.sgml,v 1.23 2003/06/27 14:45:26 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/drop_aggregate.sgml,v 1.24 2003/08/31 17:32:22 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>remove a user-defined aggregate function</refpurpose> <refpurpose>remove a user-defined aggregate function</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-dropaggregate">
<primary>DROP AGGREGATE</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
DROP AGGREGATE <replaceable class="PARAMETER">name</replaceable> ( <replaceable class="PARAMETER">type</replaceable> ) [ CASCADE | RESTRICT ] DROP AGGREGATE <replaceable class="PARAMETER">name</replaceable> ( <replaceable class="PARAMETER">type</replaceable> ) [ CASCADE | RESTRICT ]
......
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/ref/drop_cast.sgml,v 1.3 2003/05/04 02:23:16 petere Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/ref/drop_cast.sgml,v 1.4 2003/08/31 17:32:22 petere Exp $ -->
<refentry id="SQL-DROPCAST"> <refentry id="SQL-DROPCAST">
<refmeta> <refmeta>
...@@ -11,6 +11,10 @@ ...@@ -11,6 +11,10 @@
<refpurpose>remove a user-defined cast</refpurpose> <refpurpose>remove a user-defined cast</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-dropcast">
<primary>DROP CAST</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
DROP CAST (<replaceable>sourcetype</replaceable> AS <replaceable>targettype</replaceable>) [ CASCADE | RESTRICT ] DROP CAST (<replaceable>sourcetype</replaceable> AS <replaceable>targettype</replaceable>) [ CASCADE | RESTRICT ]
......
<!-- $Header: /cvsroot/pgsql/doc/src/sgml/ref/drop_conversion.sgml,v 1.5 2003/06/27 14:45:26 petere Exp $ --> <!-- $Header: /cvsroot/pgsql/doc/src/sgml/ref/drop_conversion.sgml,v 1.6 2003/08/31 17:32:22 petere Exp $ -->
<refentry id="SQL-DROPCONVERSION"> <refentry id="SQL-DROPCONVERSION">
<refmeta> <refmeta>
...@@ -11,6 +11,10 @@ ...@@ -11,6 +11,10 @@
<refpurpose>remove a user-defined conversion</refpurpose> <refpurpose>remove a user-defined conversion</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-dropconversion">
<primary>DROP CONVERSION</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
DROP CONVERSION <replaceable>conversion_name</replaceable> [ CASCADE | RESTRICT ] DROP CONVERSION <replaceable>conversion_name</replaceable> [ CASCADE | RESTRICT ]
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/drop_database.sgml,v 1.16 2003/05/04 02:23:16 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/drop_database.sgml,v 1.17 2003/08/31 17:32:22 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>remove a database</refpurpose> <refpurpose>remove a database</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-dropdatabase">
<primary>DROP DATABASE</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
DROP DATABASE <replaceable class="PARAMETER">name</replaceable> DROP DATABASE <replaceable class="PARAMETER">name</replaceable>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/drop_domain.sgml,v 1.10 2003/05/04 02:23:16 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/drop_domain.sgml,v 1.11 2003/08/31 17:32:22 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>remove a domain</refpurpose> <refpurpose>remove a domain</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-dropdomain">
<primary>DROP DOMAIN</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
DROP DOMAIN <replaceable class="PARAMETER">domainname</replaceable> [, ...] [ CASCADE | RESTRICT ] DROP DOMAIN <replaceable class="PARAMETER">domainname</replaceable> [, ...] [ CASCADE | RESTRICT ]
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/drop_function.sgml,v 1.25 2003/06/27 14:45:26 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/drop_function.sgml,v 1.26 2003/08/31 17:32:22 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>remove a user-defined function</refpurpose> <refpurpose>remove a user-defined function</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-dropfunction">
<primary>DROP FUNCTION</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
DROP FUNCTION <replaceable class="parameter">name</replaceable> ( [ <replaceable class="parameter">type</replaceable> [, ...] ] ) [ CASCADE | RESTRICT ] DROP FUNCTION <replaceable class="parameter">name</replaceable> ( [ <replaceable class="parameter">type</replaceable> [, ...] ] ) [ CASCADE | RESTRICT ]
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/drop_group.sgml,v 1.5 2003/05/04 02:23:16 petere Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/drop_group.sgml,v 1.6 2003/08/31 17:32:22 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>remove a user group</refpurpose> <refpurpose>remove a user group</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-dropgroup">
<primary>DROP GROUP</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
DROP GROUP <replaceable class="PARAMETER">name</replaceable> DROP GROUP <replaceable class="PARAMETER">name</replaceable>
......
<!-- <!--
$Header: /cvsroot/pgsql/doc/src/sgml/ref/drop_index.sgml,v 1.18 2003/06/24 23:29:25 momjian Exp $ $Header: /cvsroot/pgsql/doc/src/sgml/ref/drop_index.sgml,v 1.19 2003/08/31 17:32:22 petere Exp $
PostgreSQL documentation PostgreSQL documentation
--> -->
...@@ -14,6 +14,10 @@ PostgreSQL documentation ...@@ -14,6 +14,10 @@ PostgreSQL documentation
<refpurpose>remove an index</refpurpose> <refpurpose>remove an index</refpurpose>
</refnamediv> </refnamediv>
<indexterm zone="sql-dropindex">
<primary>DROP INDEX</primary>
</indexterm>
<refsynopsisdiv> <refsynopsisdiv>
<synopsis> <synopsis>
DROP INDEX <replaceable class="PARAMETER">name</replaceable> [, ...] [ CASCADE | RESTRICT ] DROP INDEX <replaceable class="PARAMETER">name</replaceable> [, ...] [ CASCADE | RESTRICT ]
......
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
This diff is collapsed.
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment