From 0958666ce661d33362f4b7f318b6aef64a39697f Mon Sep 17 00:00:00 2001
From: "Thomas G. Lockhart" <lockhart@fourpalms.org>
Date: Wed, 21 Oct 1998 05:34:12 +0000
Subject: [PATCH] Minor fixes in markup. Include cross-references in NOTIFY and
 UNLISTEN.

---
 doc/src/sgml/ref/create_sequence.sgml | 35 ++++++++++---
 doc/src/sgml/ref/create_table.sgml    | 12 ++---
 doc/src/sgml/ref/notify.sgml          |  2 +-
 doc/src/sgml/ref/set.sgml             |  4 +-
 doc/src/sgml/ref/unlisten.sgml        | 71 ++++++++++++++++++---------
 5 files changed, 82 insertions(+), 42 deletions(-)

diff --git a/doc/src/sgml/ref/create_sequence.sgml b/doc/src/sgml/ref/create_sequence.sgml
index 2ba60a56d4e..63644c88ff3 100644
--- a/doc/src/sgml/ref/create_sequence.sgml
+++ b/doc/src/sgml/ref/create_sequence.sgml
@@ -234,10 +234,16 @@ CREATE SEQUENCE <replaceable class="parameter">seqname</replaceable>
 to get a new number from the sequence.
 The function
 <function>currval('<replaceable class="parameter">seqname</replaceable>')</function>
- may be used
-   to determine the number returned by the last call to
+ may be used to determine the number returned by the last call to
 <function>nextval(<replaceable class="parameter">seqname</replaceable>)</function>
  for the specified sequence in the current session.
+The function
+<function>setval('<replaceable class="parameter">seqname</replaceable>',
+ <replaceable class="parameter">newvalue</replaceable>)</function>
+may be used to set the current value of the specified sequence.
+The next call to 
+<function>nextval(<replaceable class="parameter">seqname</replaceable>)</function>
+will return the given value plus the sequence increment.
   </para>
   
   <para>
@@ -259,10 +265,8 @@ SELECT last_value FROM sequence_name;
    calls to a generator.
   </para>
 
-  <para>
-  <TITLE>
-  NOTE:
-  </TITLE>
+<caution>
+<para>
   Unexpected results may be obtained if a cache setting greater than one
   is used for a sequence object that will be used concurrently by multiple
   backends.  Each backend will allocate "cache" successive sequence values
@@ -273,7 +277,8 @@ SELECT last_value FROM sequence_name;
   will be lost.  Furthermore, although multiple backends are guaranteed to
   allocate distinct sequence values, the values may be generated out of
   sequence when all the backends are considered.  (For example, with a cache
-  setting of 10, backend A might reserve values 1..10 and return nextval=1, then
+  setting of 10, backend A might reserve values 1..10 and return nextval=1, 
+then
   backend B might reserve values 11..20 and return nextval=11 before backend
   A has generated nextval=2.)  Thus, with a cache setting of one it is safe
   to assume that nextval values are generated sequentially; with a cache
@@ -281,7 +286,7 @@ SELECT last_value FROM sequence_name;
   are all distinct, not that they are generated purely sequentially.
   Also, last_value will reflect the latest value reserved by any backend,
   whether or not it has yet been returned by nextval.
-  </para>
+</caution>
   
   <REFSECT2 ID="R2-SQL-CREATESEQUENCE-3">
    <REFSECT2INFO>
@@ -327,6 +332,20 @@ nextval
 INSERT INTO distributors VALUES (NEXTVAL('serial'),'nothing');
    </programlisting>
   </para>
+
+  <para>
+   Set the sequence value after a COPY FROM:
+   <programlisting>
+CREATE FUNCTION distributors_id_max() RETURNS INT4
+       AS 'SELECT max(id) FROM distributors' 
+       LANGUAGE 'sql';
+BEGIN;
+COPY distributors FROM 'input_file';
+SELECT setval('serial', distributors_id_max());
+END;
+   </programlisting>
+  </para>
+
  </REFSECT1>
  
  <REFSECT1 ID="R1-SQL-CREATESEQUENCE-3">
diff --git a/doc/src/sgml/ref/create_table.sgml b/doc/src/sgml/ref/create_table.sgml
index 241d93c95d6..4affd2cb26c 100644
--- a/doc/src/sgml/ref/create_table.sgml
+++ b/doc/src/sgml/ref/create_table.sgml
@@ -117,16 +117,10 @@ requires the <REPLACEABLE CLASS="PARAMETER">column_constraint_clause</REPLACEABL
        an insert or update operation to succeed. Each constraint
        must evaluate to a boolean expression. Multiple columns
        may be referenced within a single constraint.
-       The use of
-       <TERM>
+       Only one PRIMARY KEY clause may be specified for a table;
        PRIMARY KEY <REPLACEABLE>column</REPLACEABLE>
-       </TERM>
-       as a table constraint
-       is mutually incompatible with
-       <TERM>
-       PRIMARY KEY
-       </TERM>
-       used as a column constraint.
+       (a table constraint) and PRIMARY KEY (a column constraint) are
+       mutually exclusive..
        See the table constraint clause for more information.
       </PARA>
      </LISTITEM>
diff --git a/doc/src/sgml/ref/notify.sgml b/doc/src/sgml/ref/notify.sgml
index 90b361b0606..414b951f93d 100644
--- a/doc/src/sgml/ref/notify.sgml
+++ b/doc/src/sgml/ref/notify.sgml
@@ -1,6 +1,6 @@
 <REFENTRY ID="SQL-NOTIFY">
 <REFMETA>
-<REFENTRYTITLE>
+<REFENTRYTITLE id="sql-notify-ref">
 NOTIFY
 </REFENTRYTITLE>
 <REFMISCINFO>SQL - Language Statements</REFMISCINFO>
diff --git a/doc/src/sgml/ref/set.sgml b/doc/src/sgml/ref/set.sgml
index 8b840294716..d187d46bb8a 100644
--- a/doc/src/sgml/ref/set.sgml
+++ b/doc/src/sgml/ref/set.sgml
@@ -450,11 +450,11 @@ DEFAULT
 <listitem>
 <para>
 Sets the maximum number of rows returned by a query to be unlimited.
-</varlistentry>
-
 <para>
 By default, there is no limit to the number of rows
 returned by a query.
+</varlistentry>
+
 </variablelist>
 
 </VARLISTENTRY>
diff --git a/doc/src/sgml/ref/unlisten.sgml b/doc/src/sgml/ref/unlisten.sgml
index 5ba9f2c551d..cc187576751 100644
--- a/doc/src/sgml/ref/unlisten.sgml
+++ b/doc/src/sgml/ref/unlisten.sgml
@@ -10,12 +10,12 @@ UNLISTEN
 UNLISTEN
 </REFNAME>
 <REFPURPOSE>
-Stop listening for notification on a notify condition
+Stop listening for notification
 </REFPURPOSE>
 
 <REFSYNOPSISDIV>
 <REFSYNOPSISDIVINFO>
-<DATE>1998-10-07</DATE>
+<DATE>1998-10-19</DATE>
 </REFSYNOPSISDIVINFO>
 <SYNOPSIS>
 UNLISTEN { <REPLACEABLE CLASS="PARAMETER">notifyname</REPLACEABLE> | * }
@@ -23,7 +23,7 @@ UNLISTEN { <REPLACEABLE CLASS="PARAMETER">notifyname</REPLACEABLE> | * }
 
 <REFSECT2 ID="R2-SQL-UNLISTEN-1">
 <REFSECT2INFO>
-<DATE>1998-10-07</DATE>
+<DATE>1998-10-19</DATE>
 </REFSECT2INFO>
 <TITLE>
 Inputs
@@ -37,7 +37,7 @@ Inputs
 </TERM>
 <LISTITEM>
 <PARA>
-Name of notify condition to stop listening to.
+Name of previously registered notify condition.
 
 <VARLISTENTRY>
 <TERM>
@@ -53,7 +53,7 @@ All current listen registrations for this backend are cleared.
 
 <REFSECT2 ID="R2-SQL-UNLISTEN-2">
 <REFSECT2INFO>
-<DATE>1998-10-07</DATE>
+<DATE>1998-10-19</DATE>
 </REFSECT2INFO>
 <TITLE>
 Outputs
@@ -87,49 +87,75 @@ Acknowledgement that statement has executed.
 
 <REFSECT1 ID="R1-SQL-UNLISTEN-1">
 <REFSECT1INFO>
-<DATE>1998-10-07</DATE>
+<DATE>1998-10-19</DATE>
 </REFSECT1INFO>
 <TITLE>
 Description
 </TITLE>
 <PARA>
+<command>UNLISTEN</command>
+is used to remove an existing <command>NOTIFY</command> registration.
 UNLISTEN cancels any existing registration of the current
-<productname>Postgres</productname> backend as a listener on the notify
+<productname>Postgres</productname> session as a listener on the notify
 condition <REPLACEABLE CLASS="PARAMETER">notifyname</REPLACEABLE>.
-The special condition name "*" means to cancel all listener registrations
-for the current backend.
+The special condition wildcard "*" cancels all listener registrations
+for the current session.
 
 <para>
-The backend does not complain if you UNLISTEN something you were not
-listening for.
+<xref linkend="sql-notify-ref" endterm="sql-notify-ref">
+contains a more extensive
+discussion of the use of <command>LISTEN</command> and
+<command>NOTIFY</command>.
 
+<REFSECT2 ID="R2-SQL-UNLISTEN-3">
+<REFSECT2INFO>
+<DATE>1998-10-19</DATE>
+</REFSECT2INFO>
+<TITLE>
+Notes
+</TITLE>
 <para>
+<REPLACEABLE CLASS="PARAMETER">classname</REPLACEABLE>
+needs not to be a valid class name but can be any string valid
+as a name up to 32 characters long.
+
+<para>
+The backend does not complain if you UNLISTEN something you were not
+listening for.
 Each backend will automatically execute <command>UNLISTEN *</command> when
 exiting.
 
 <para>
-The reference page for <command>NOTIFY</command> contains a more extensive
-discussion of the use of <command>LISTEN</command> and
-<command>NOTIFY</command>.
+A restriction in some previous releases of
+ <productname>Postgres</productname> that a
+<REPLACEABLE CLASS="PARAMETER">classname</REPLACEABLE>
+which does not correspond to an actual table must be enclosed in double-quotes
+is no longer present.
+
+</REFSECT2>
 
 <REFSECT1 ID="R1-SQL-UNLISTEN-2">
 <TITLE>
 Usage
 </TITLE>
-<PARA>
-<ProgramListing>
-postgres=> listen virtual;
+
+<para>
+<programlisting>
+postgres=> LISTEN virtual;
 LISTEN
-postgres=> notify virtual;
+postgres=> NOTIFY virtual;
 NOTIFY
 ASYNC NOTIFY of 'virtual' from backend pid '12317' received
-postgres=> unlisten virtual;
+</programlisting>
+
+<programlisting>
+postgres=> UNLISTEN virtual;
 UNLISTEN
-postgres=> notify virtual;
+postgres=> NOTIFY virtual;
 NOTIFY
 -- notice no NOTIFY event is received
 postgres=>
-</ProgramListing>
+</programlisting>
 
 </REFSECT1>
 
@@ -141,11 +167,12 @@ Compatibility
 
 <REFSECT2 ID="R2-SQL-UNLISTEN-4">
 <REFSECT2INFO>
-<DATE>1998-10-07</DATE>
+<DATE>1998-10-19</DATE>
 </REFSECT2INFO>
 <TITLE>
 SQL92
 </TITLE>
 <PARA>
    There is no <command>UNLISTEN</command> in <acronym>SQL92</acronym>.
+
 </REFENTRY>
-- 
GitLab