Hi,

thanks for the response and for your corrections to the patch.
But I checked my changes by running make html, make postgres-A4.pdf,
make postgres-US.pdf and viewing
the results: everything is OK.

Message
'old mode 100644
new mode 100755'
this means, imho, that access rights were changed during changes to
the file. I fixed it in the patch
fix_doc_raise_v3-bios.patch. Please check it out.

Thanks again for your comments.

ср, 22 мая 2024 г. в 14:13, jian he <jian.universal...@gmail.com>:
>
> On Wed, May 22, 2024 at 4:18 PM Igor Gnatyuk <ig95...@gmail.com> wrote:
> >
> > Hi.
> >
> > Thanks for the comments. I fixed my mistakes by specifying sqlcode
> > instead of sqlstate and changed the phrase
> > with an explicit listing of options in USING. In addition, I moved the
> > paragraph with it below.
> > Please check out the new patch version in the attachment.
> >
>
> after git apply
>
> jian@jian:~/Desktop/pg_src/src7/postgres$ git apply
> $PATCHES/fix_doc_raise_v3.patch
> jian@jian:~/Desktop/pg_src/src7/postgres$ git diff
> diff --git a/doc/src/sgml/plpgsql.sgml b/doc/src/sgml/plpgsql.sgml
> old mode 100644
> new mode 100755
>
> -----------------
> i guess, that means your patch (fix_doc_raise_v3) has some structural problem.
>
> so I wrote it based on fix_doc_raise_v2.patch.
> please check attached.
>
>
> Feel free to change it.
diff --git a/doc/src/sgml/plpgsql.sgml b/doc/src/sgml/plpgsql.sgml
index 6f880b705f..eccba15cdc 100644
*** a/doc/src/sgml/plpgsql.sgml
--- b/doc/src/sgml/plpgsql.sgml
***************
*** 3805,3814 **** CALL transaction_test2();
      raise errors.
  
  <synopsis>
! RAISE <optional> <replaceable class="parameter">level</replaceable> </optional> '<replaceable class="parameter">format</replaceable>' <optional>, <replaceable class="parameter">expression</replaceable> <optional>, ... </optional></optional> <optional> USING <replaceable class="parameter">option</replaceable> = <replaceable class="parameter">expression</replaceable> <optional>, ... </optional> </optional>;
! RAISE <optional> <replaceable class="parameter">level</replaceable> </optional> <replaceable class="parameter">condition_name</replaceable> <optional> USING <replaceable class="parameter">option</replaceable> = <replaceable class="parameter">expression</replaceable> <optional>, ... </optional> </optional>;
! RAISE <optional> <replaceable class="parameter">level</replaceable> </optional> SQLSTATE '<replaceable class="parameter">sqlstate</replaceable>' <optional> USING <replaceable class="parameter">option</replaceable> = <replaceable class="parameter">expression</replaceable> <optional>, ... </optional> </optional>;
! RAISE <optional> <replaceable class="parameter">level</replaceable> </optional> USING <replaceable class="parameter">option</replaceable> = <replaceable class="parameter">expression</replaceable> <optional>, ... </optional>;
  RAISE ;
  </synopsis>
  
--- 3805,3814 ----
      raise errors.
  
  <synopsis>
! RAISE <optional> <replaceable class="parameter">level</replaceable> </optional> '<replaceable class="parameter">format</replaceable>' <optional>, <replaceable class="parameter">expression</replaceable> <optional>, ... </optional></optional> <optional> USING <replaceable class="parameter">option</replaceable> { = | := } <replaceable class="parameter">expression</replaceable> <optional>, ... </optional> </optional>;
! RAISE <optional> <replaceable class="parameter">level</replaceable> </optional> <replaceable class="parameter">condition_name</replaceable> <optional> USING <replaceable class="parameter">option</replaceable> { = | := } <replaceable class="parameter">expression</replaceable> <optional>, ... </optional> </optional>;
! RAISE <optional> <replaceable class="parameter">level</replaceable> </optional> SQLSTATE '<replaceable class="parameter">sqlstate</replaceable>' <optional> USING <replaceable class="parameter">option</replaceable> { = | := } <replaceable class="parameter">expression</replaceable> <optional>, ... </optional> </optional>;
! RAISE <optional> <replaceable class="parameter">level</replaceable> </optional> USING <replaceable class="parameter">option</replaceable> { = | := } <replaceable class="parameter">expression</replaceable> <optional>, ... </optional>;
  RAISE ;
  </synopsis>
  
***************
*** 3852,3862 **** RAISE NOTICE 'Calling cs_create_job(%)', v_job_id;
  </programlisting>
     </para>
  
     <para>
      You can attach additional information to the error report by writing
      <literal>USING</literal> followed by <replaceable
      class="parameter">option</replaceable> = <replaceable
!     class="parameter">expression</replaceable> items.  Each
      <replaceable class="parameter">expression</replaceable> can be any
      string-valued expression.  The allowed <replaceable
      class="parameter">option</replaceable> key words are:
--- 3852,3881 ----
  </programlisting>
     </para>
  
+    <para>
+     <replaceable class="parameter">condition_name</replaceable> and
+     <replaceable class="parameter">sqlstate</replaceable> specify
+     error condition name and the five-character SQLSTATE code respectively.
+     See <xref linkend="errcodes-appendix"/> for more information.
+    </para>
+ 
+    <para>
+     The example below shows <replaceable class="parameter">condition_name</replaceable>
+     and <replaceable class="parameter">sqlstate</replaceable> options usage:
+ <programlisting>
+ RAISE division_by_zero;
+ RAISE SQLSTATE '22012';
+ </programlisting>
+    </para>
+ 
     <para>
      You can attach additional information to the error report by writing
      <literal>USING</literal> followed by <replaceable
      class="parameter">option</replaceable> = <replaceable
!     class="parameter">expression</replaceable> or
!     <replaceable class="parameter">option</replaceable> :=
!     <replaceable class="parameter">expression</replaceable>
!     items, where
      <replaceable class="parameter">expression</replaceable> can be any
      string-valued expression.  The allowed <replaceable
      class="parameter">option</replaceable> key words are:
***************
*** 3925,3939 **** RAISE 'Duplicate user ID: %', user_id USING ERRCODE = '23505';
     </para>
  
     <para>
!     There is a second <command>RAISE</command> syntax in which the main argument
!     is the condition name or SQLSTATE to be reported, for example:
! <programlisting>
! RAISE division_by_zero;
! RAISE SQLSTATE '22012';
! </programlisting>
!     In this syntax, <literal>USING</literal> can be used to supply a custom
!     error message, detail, or hint.  Another way to do the earlier
!     example is
  <programlisting>
  RAISE unique_violation USING MESSAGE = 'Duplicate user ID: ' || user_id;
  </programlisting>
--- 3944,3954 ----
     </para>
  
     <para>
!     In the <command>RAISE</command> command syntax with
!     <replaceable class="parameter">condition_name</replaceable> or
!     <replaceable class="parameter">sqlstate</replaceable> you can
!     additionally use the <literal>USING</literal> clause too.
!     A variation of the example above:
  <programlisting>
  RAISE unique_violation USING MESSAGE = 'Duplicate user ID: ' || user_id;
  </programlisting>

Reply via email to