From 906254a53c7efee365ece567ddeab69ac9870d53 Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Mon, 11 Feb 2002 00:14:10 +0000
Subject: [PATCH] pg_dump and pg_restore man pages need to mention that one
 should restore into a virgin database, ie, one created from template0, if
 there are any site-local additions in template1.

---
 doc/src/sgml/ref/pg_dump.sgml    | 17 +++++++++++++++--
 doc/src/sgml/ref/pg_restore.sgml | 18 +++++++++++++++---
 2 files changed, 30 insertions(+), 5 deletions(-)

diff --git a/doc/src/sgml/ref/pg_dump.sgml b/doc/src/sgml/ref/pg_dump.sgml
index 9aadae36e03..0169043e96a 100644
--- a/doc/src/sgml/ref/pg_dump.sgml
+++ b/doc/src/sgml/ref/pg_dump.sgml
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_dump.sgml,v 1.41 2001/12/08 03:24:37 thomas Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_dump.sgml,v 1.42 2002/02/11 00:14:10 tgl Exp $
 PostgreSQL documentation
 -->
 
@@ -603,8 +603,21 @@ connectDBStart() -- connect() failed: No such file or directory
 
  <refsect1 id="pg-dump-notes">
   <title>Notes</title>
+
+  <para>
+   If your installation has any local additions to the template1 database,
+   be careful to restore the output of <command>pg_dump</command> into a
+   truly empty database; otherwise you are likely to get errors due to
+   duplicate definitions of the added objects.  To make an empty database
+   without any local additions, copy from template0 not template1,
+   for example:
+<programlisting>
+CREATE DATABASE foo WITH TEMPLATE = template0;
+</programlisting>
+  </para>
+
   <para>
-   <command>pg_dump</command> has a few limitations.
+   <command>pg_dump</command> has a few limitations:
 
    <itemizedlist>
     <listitem>
diff --git a/doc/src/sgml/ref/pg_restore.sgml b/doc/src/sgml/ref/pg_restore.sgml
index ef0587c11f9..b88bb4ae748 100644
--- a/doc/src/sgml/ref/pg_restore.sgml
+++ b/doc/src/sgml/ref/pg_restore.sgml
@@ -1,4 +1,4 @@
-<!-- $Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_restore.sgml,v 1.21 2001/11/28 20:49:10 petere Exp $ -->
+<!-- $Header: /cvsroot/pgsql/doc/src/sgml/ref/pg_restore.sgml,v 1.22 2002/02/11 00:14:10 tgl Exp $ -->
 
 <refentry id="APP-PGRESTORE">
  <docinfo>
@@ -513,13 +513,25 @@ connectDBStart() -- connect() failed: No such file or directory
    Notes
   </title>
 
+  <para>
+   If your installation has any local additions to the template1 database,
+   be careful to load the output of <command>pg_restore</command> into a
+   truly empty database; otherwise you are likely to get errors due to
+   duplicate definitions of the added objects.  To make an empty database
+   without any local additions, copy from template0 not template1,
+   for example:
+<programlisting>
+CREATE DATABASE foo WITH TEMPLATE = template0;
+</programlisting>
+  </para>
+
   <para>
    The limitations of <command>pg_restore</command> are detailed below.
 
    <itemizedlist>
     <listitem>
      <para>
-      When restoring data to a table, <command>pg_restore</command> emits queries
+      When restoring data to a pre-existing table, <command>pg_restore</command> emits queries
       to disable triggers on user tables before inserting the data then emits queries to
       re-enable them after the data has been inserted.  If the restore is stopped in the
       middle, the system catalogs may be left in the wrong state.
@@ -538,7 +550,7 @@ connectDBStart() -- connect() failed: No such file or directory
 
   <para>
    See the <xref linkend="app-pgdump"> documentation for details on
-   limitation of <command>pg_dump</command>.
+   limitations of <command>pg_dump</command>.
   </para>
  </refsect1>
 
-- 
GitLab