[Moving to -docs]

On Mon, May 2, 2011 at 12:00 PM, Pavel Stehule <pavel.steh...@gmail.com> wrote:
> Hello
>
> one czech user reported a bug in documentation -
> http://www.postgresql.org/docs/8.4/static/plpgsql-trigger.html
>
> NEW
>
>    Data type RECORD; variable holding the new database row for
> INSERT/UPDATE operations in row-level triggers. This variable is NULL
> in statement-level triggers and for DELETE operations.
> OLD
>
>    Data type RECORD; variable holding the old database row for
> UPDATE/DELETE operations in row-level triggers. This variable is NULL
> in statement-level triggers and for INSERT operations.
>
> It isn't correct. NEW is not declared in DELETE trigger, OLD isn't
> declared in INSERT

If I've understood you correctly, the problem is that the docs claim
that the variables are defined with a value of NULL, when in fact they
are undefined. For example, if you try to use variable NEW in a delete
trigger, you'll get an error message like:
|  ERROR:  record "new" is not assigned yet
|  DETAIL:  The tuple structure of a not-yet-assigned record is indeterminate.

How about a doc tweak like the attached?

Josh
diff --git a/doc/src/sgml/plpgsql.sgml b/doc/src/sgml/plpgsql.sgml
index 1866e43..6b6cf37 100644
*** a/doc/src/sgml/plpgsql.sgml
--- b/doc/src/sgml/plpgsql.sgml
*************** RAISE unique_violation USING MESSAGE = '
*** 3279,3286 ****
        <para>
         Data type <type>RECORD</type>; variable holding the new
         database row for <command>INSERT</>/<command>UPDATE</> operations in row-level
!        triggers. This variable is <symbol>NULL</symbol> in statement-level triggers
!        and for <command>DELETE</command> operations.
        </para>
       </listitem>
      </varlistentry>
--- 3279,3286 ----
        <para>
         Data type <type>RECORD</type>; variable holding the new
         database row for <command>INSERT</>/<command>UPDATE</> operations in row-level
!        triggers. This variable is not defined in statement-level triggers
!        or <command>DELETE</command> operations.
        </para>
       </listitem>
      </varlistentry>
*************** RAISE unique_violation USING MESSAGE = '
*** 3291,3298 ****
        <para>
         Data type <type>RECORD</type>; variable holding the old
         database row for <command>UPDATE</>/<command>DELETE</> operations in row-level
!        triggers. This variable is <symbol>NULL</symbol> in statement-level triggers
!        and for <command>INSERT</command> operations.
        </para>
       </listitem>
      </varlistentry>
--- 3291,3298 ----
        <para>
         Data type <type>RECORD</type>; variable holding the old
         database row for <command>UPDATE</>/<command>DELETE</> operations in row-level
!        triggers. This variable is not defined in statement-level triggers
!        or <command>INSERT</command> operations.
        </para>
       </listitem>
      </varlistentry>
-- 
Sent via pgsql-bugs mailing list (pgsql-bugs@postgresql.org)
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-bugs

Reply via email to