From 46c93bd532146ab348a16621fe467042786bb462 Mon Sep 17 00:00:00 2001
From: Tom Lane <tgl@sss.pgh.pa.us>
Date: Tue, 8 May 2001 02:53:24 +0000
Subject: [PATCH] Further cleanup of RAISE discussion; in particular, remove
 example that doesn't actually work.

---
 doc/src/sgml/plsql.sgml | 27 ++++++++++++++++++---------
 1 file changed, 18 insertions(+), 9 deletions(-)

diff --git a/doc/src/sgml/plsql.sgml b/doc/src/sgml/plsql.sgml
index dfc0c8dda98..0bc49b52caf 100644
--- a/doc/src/sgml/plsql.sgml
+++ b/doc/src/sgml/plsql.sgml
@@ -1,5 +1,5 @@
 <!--
-$Header: /cvsroot/pgsql/doc/src/sgml/Attic/plsql.sgml,v 2.28 2001/05/08 02:26:09 momjian Exp $
+$Header: /cvsroot/pgsql/doc/src/sgml/Attic/plsql.sgml,v 2.29 2001/05/08 02:53:24 tgl Exp $
 -->
 
 <chapter id="plpgsql"> 
@@ -1309,20 +1309,29 @@ END LOOP;
 RAISE <replaceable class="parameter">level</replaceable> '<replaceable class="parameter">format</replaceable>' <optional>, <replaceable class="parameter">variable</replaceable> <optional>...</optional></optional>;
 </synopsis>
 
-    Inside the format, <literal>%</literal> is replaced by the next argument's
-    external representation. Double <literal>%</literal>'s are output as <literal>%</literal>.
-    Possible levels are DEBUG (silently suppressed in production
-    running databases), NOTICE (written into the database log and forwarded to
-    the client application) and EXCEPTION (written into the database log and
+    Possible levels are DEBUG (write the message into the postmaster log),
+    NOTICE (write the message into the postmaster log and forward it to
+    the client application) and EXCEPTION (raise an error,
     aborting the transaction).
+    Inside the format string, <literal>%</literal> is replaced by the next
+    optional argument's external representation.
+    Write <literal>%%</literal> to emit a literal <literal>%</literal>.
+    Note that the optional arguments must presently
+    be simple variables, not expressions, and the format must be a simple
+    string literal.
    </para>
 
+   <!--
+   This example should work, but does not:
+   	RAISE NOTICE ''Id number '' || key || '' not found!'';
+   Put it back when we allow non-string-literal formats.
+    -->
+
    <para>
 <programlisting>
-RAISE NOTICE ''Id number '' || key || '' not found!'';
 RAISE NOTICE ''Calling cs_create_job(%)'',v_job_id;
 </programlisting>
-    In this last example, v_job_id will replace the % in the
+    In this example, the value of v_job_id will replace the % in the
     string.
    </para>
 
@@ -1330,7 +1339,7 @@ RAISE NOTICE ''Calling cs_create_job(%)'',v_job_id;
 <programlisting>
 RAISE EXCEPTION ''Inexistent ID --> %'',user_id;
 </programlisting>
-    This will abort the transaction and write to the database log.
+    This will abort the transaction with the given error message.
    </para>
   </sect2>   
 
-- 
GitLab