[Moving to -docs]
On Mon, May 2, 2011 at 12:00 PM, Pavel Stehule <[email protected]> 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-docs mailing list ([email protected])
To make changes to your subscription:
http://www.postgresql.org/mailpref/pgsql-docs