From: | Jeff Davis <pgsql(at)j-davis(dot)com> |
---|---|
To: | Michael Nolan <htfoot(at)gmail(dot)com> |
Cc: | "pgsql-general(at)postgresql(dot)org" <pgsql-general(at)postgresql(dot)org> |
Subject: | Re: Returning NEW in an on-delete trigger |
Date: | 2008-09-18 19:00:32 |
Message-ID: | 1221764432.6194.254.camel@dell.linuxdev.us.dell.com |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
On Thu, 2008-09-18 at 14:21 -0400, Michael Nolan wrote:
> Recently I discovered a coding error of mine in a trigger that is
> called only for deletes.
>
> I was returning NEW instead of OLD.
>
> Since NEW is undefined when deleting a row, it was failing and the row
> wasn't being deleted.
In PL/pgSQL, NEW is NULL for BEFORE DELETE triggers. It doesn't appear
to be obviously documented that this is the case (which is, I assume,
why you said it is undefined), and I agree that it can cause confusion.
> However, it was failing silently. Shouldn't this have recorded an
> error or warning somewhere?
This is a feature, not a bug. Sometimes you don't want to delete a
record, and returning NULL is the way to do that.
Regards,
Jeff Davis
From | Date | Subject | |
---|---|---|---|
Next Message | Tom Lane | 2008-09-18 19:04:43 | Re: Returning NEW in an on-delete trigger |
Previous Message | Michael Nolan | 2008-09-18 18:21:20 | Returning NEW in an on-delete trigger |