From bc4b856e7b04cd076dbcaa914a1e84bd1f07e10d Mon Sep 17 00:00:00 2001
From: Neil Conway <neilc@samurai.com>
Date: Tue, 31 Oct 2006 01:52:31 +0000
Subject: [PATCH] Add text to the VACUUM, REINDEX, DROP TABLESPACE and CREATE
 TABLESPACE reference pages documenting that these commands cannot be used
 within a transaction block. Also make some minor improvements to the psql
 reference page. Patch from Simon Riggs, minor editorialization by myself.

---
 doc/src/sgml/ref/cluster.sgml           |  6 +++---
 doc/src/sgml/ref/create_tablespace.sgml |  7 ++++++-
 doc/src/sgml/ref/drop_tablespace.sgml   | 11 ++++++++++-
 doc/src/sgml/ref/psql-ref.sgml          | 20 +++++++++++++-------
 doc/src/sgml/ref/reindex.sgml           |  7 +++++--
 doc/src/sgml/ref/vacuum.sgml            |  6 +++++-
 6 files changed, 42 insertions(+), 15 deletions(-)

diff --git a/doc/src/sgml/ref/cluster.sgml b/doc/src/sgml/ref/cluster.sgml
index f72c7ac0067..17c185e0760 100644
--- a/doc/src/sgml/ref/cluster.sgml
+++ b/doc/src/sgml/ref/cluster.sgml
@@ -1,5 +1,5 @@
 <!--
-$PostgreSQL: pgsql/doc/src/sgml/ref/cluster.sgml,v 1.36 2006/09/16 00:30:17 momjian Exp $
+$PostgreSQL: pgsql/doc/src/sgml/ref/cluster.sgml,v 1.37 2006/10/31 01:52:31 neilc Exp $
 PostgreSQL documentation
 -->
 
@@ -60,8 +60,8 @@ CLUSTER
    in the
    current database that the calling user owns, or all tables if called
    by a superuser.  (Never-clustered tables are not included.)  This
-   form of <command>CLUSTER</command> cannot be called from inside a
-   transaction or function.
+   form of <command>CLUSTER</command> cannot be executed inside a transaction
+   block.
   </para>
 
   <para>
diff --git a/doc/src/sgml/ref/create_tablespace.sgml b/doc/src/sgml/ref/create_tablespace.sgml
index 8f64dbe2c8e..797591d613a 100644
--- a/doc/src/sgml/ref/create_tablespace.sgml
+++ b/doc/src/sgml/ref/create_tablespace.sgml
@@ -1,5 +1,5 @@
 <!--
-$PostgreSQL: pgsql/doc/src/sgml/ref/create_tablespace.sgml,v 1.6 2006/09/16 00:30:17 momjian Exp $
+$PostgreSQL: pgsql/doc/src/sgml/ref/create_tablespace.sgml,v 1.7 2006/10/31 01:52:31 neilc Exp $
 PostgreSQL documentation
 -->
 
@@ -95,6 +95,11 @@ CREATE TABLESPACE <replaceable class="parameter">tablespacename</replaceable> [
   <para>
    Tablespaces are only supported on systems that support symbolic links.
   </para>
+
+   <para>
+    <command>CREATE TABLESPACE</> cannot be executed inside a transaction
+    block.
+   </para>
  </refsect1>
 
  <refsect1>
diff --git a/doc/src/sgml/ref/drop_tablespace.sgml b/doc/src/sgml/ref/drop_tablespace.sgml
index 080aa478eba..25772eadd31 100644
--- a/doc/src/sgml/ref/drop_tablespace.sgml
+++ b/doc/src/sgml/ref/drop_tablespace.sgml
@@ -1,5 +1,5 @@
 <!--
-$PostgreSQL: pgsql/doc/src/sgml/ref/drop_tablespace.sgml,v 1.4 2006/09/16 00:30:18 momjian Exp $
+$PostgreSQL: pgsql/doc/src/sgml/ref/drop_tablespace.sgml,v 1.5 2006/10/31 01:52:31 neilc Exp $
 PostgreSQL documentation
 -->
 
@@ -66,6 +66,15 @@ DROP TABLESPACE [ IF EXISTS ] <replaceable class="PARAMETER">tablespacename</rep
   </variablelist>
  </refsect1>
 
+ <refsect1>
+  <title>Notes</title>
+
+   <para>
+    <command>DROP TABLESPACE</> cannot be executed inside a transaction block.
+   </para>
+ </refsect1>
+
+
  <refsect1>
   <title>Examples</title>
 
diff --git a/doc/src/sgml/ref/psql-ref.sgml b/doc/src/sgml/ref/psql-ref.sgml
index d80249c7dae..be04f63284b 100644
--- a/doc/src/sgml/ref/psql-ref.sgml
+++ b/doc/src/sgml/ref/psql-ref.sgml
@@ -1,5 +1,5 @@
 <!--
-$PostgreSQL: pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.172 2006/10/23 18:10:32 petere Exp $
+$PostgreSQL: pgsql/doc/src/sgml/ref/psql-ref.sgml,v 1.173 2006/10/31 01:52:31 neilc Exp $
 PostgreSQL documentation
 -->
 
@@ -94,9 +94,10 @@ PostgreSQL documentation
       <para>
        If the command string contains multiple SQL commands, they are
        processed in a single transaction, unless there are explicit
-       BEGIN/COMMIT commands included in the string to divide it into
-       multiple transactions.  This is different from the behavior when
-       the same string is fed to <application>psql</application>'s standard input.
+       <command>BEGIN</>/<command>COMMIT</> commands included in the
+       string to divide it into multiple transactions.  This is
+       different from the behavior when the same string is fed to
+       <application>psql</application>'s standard input.
       </para>
       </listitem>
     </varlistentry>
@@ -472,9 +473,14 @@ PostgreSQL documentation
         <option>-f</> option, adding this option wraps
         <command>BEGIN</>/<command>COMMIT</> around the script to execute it
         as a single transaction.  This ensures that either all the commands
-        complete successfully, or no changes are applied.  (However, if the
-        script itself uses <command>BEGIN</> or <command>COMMIT</>, this
-        option will not have the desired effect!)
+        complete successfully, or no changes are applied.  
+       </para>
+
+       <para>
+        If the script itself uses <command>BEGIN</>, <command>COMMIT</>
+        or any command that cannot be executed inside a transaction
+        block, specifying this option will cause the transaction to be
+        aborted.
        </para>
       </listitem>
      </varlistentry>
diff --git a/doc/src/sgml/ref/reindex.sgml b/doc/src/sgml/ref/reindex.sgml
index 574b8effd1c..661a219adc2 100644
--- a/doc/src/sgml/ref/reindex.sgml
+++ b/doc/src/sgml/ref/reindex.sgml
@@ -1,5 +1,5 @@
 <!--
-$PostgreSQL: pgsql/doc/src/sgml/ref/reindex.sgml,v 1.33 2006/09/16 00:30:19 momjian Exp $
+$PostgreSQL: pgsql/doc/src/sgml/ref/reindex.sgml,v 1.34 2006/10/31 01:52:31 neilc Exp $
 PostgreSQL documentation
 -->
 
@@ -106,7 +106,8 @@ REINDEX { INDEX | TABLE | DATABASE | SYSTEM } <replaceable class="PARAMETER">nam
      <para>
       Recreate all indexes within the current database.
       Indexes on shared system catalogs are skipped except in stand-alone mode
-      (see below).
+      (see below). This form of <command>REINDEX</command> cannot be executed 
+      inside a transaction block.
      </para>
     </listitem>
    </varlistentry>
@@ -118,6 +119,8 @@ REINDEX { INDEX | TABLE | DATABASE | SYSTEM } <replaceable class="PARAMETER">nam
       Recreate all indexes on system catalogs within the current database.
       Indexes on user tables are not processed.  Also, indexes on shared
       system catalogs are skipped except in stand-alone mode (see below).
+      This form of <command>REINDEX</command> cannot be executed inside a
+      transaction block.
      </para>
     </listitem>
    </varlistentry>
diff --git a/doc/src/sgml/ref/vacuum.sgml b/doc/src/sgml/ref/vacuum.sgml
index 225590a5cd2..0764aa68079 100644
--- a/doc/src/sgml/ref/vacuum.sgml
+++ b/doc/src/sgml/ref/vacuum.sgml
@@ -1,5 +1,5 @@
 <!--
-$PostgreSQL: pgsql/doc/src/sgml/ref/vacuum.sgml,v 1.41 2006/09/16 00:30:20 momjian Exp $
+$PostgreSQL: pgsql/doc/src/sgml/ref/vacuum.sgml,v 1.42 2006/10/31 01:52:31 neilc Exp $
 PostgreSQL documentation
 -->
 
@@ -155,6 +155,10 @@ VACUUM [ FULL | FREEZE ] [ VERBOSE ] ANALYZE [ <replaceable class="PARAMETER">ta
  <refsect1>
   <title>Notes</title>
 
+   <para>
+    <command>VACUUM</> cannot be executed inside a transaction block.
+   </para>
+
    <para>
     We recommend that active production databases be
     vacuumed frequently (at least nightly), in order to
-- 
GitLab