I am attempting to use the following code but I get -
"ERROR: NEW used in query that is not in a rule".
This implies that I create a rule for NEW and OLD (which I haven't needed
before).
Could someone point me to the proper synatx for such a rule?
BTW I noticed that Adrian used != . Is this symbol the same as <> ?
Bob
----- Original Message -----
From: "Adrian Klaver" <aklaver@comcast.net>
To: <pgsql-general@postgresql.org>
Cc: "Daniel Verite" <daniel@manitou-mail.org>; "Bob Pawley"
<rjpawley@shaw.ca>
Sent: Monday, March 17, 2008 7:16 AM
Subject: Re: [GENERAL] Updating
> On Monday 17 March 2008 4:54 am, Daniel Verite wrote:
>> Adrian Klaver wrote:
>> > CREATE FUNCTION foo() RETURNS trigger AS
>> > $Body$
>> > BEGIN
>> > IF NEW.colname != OLD.colname THEN
>> > ..."Do something"..;
>> > RETURN whatever;
>> > ELSE
>> > RETURN NEW:
>> > END IF;
>> > END;
>> > $Body$ LANGUAGE plpgsql;
>>
>> Beware that the "Do something" code path will not be taken when the
>> column goes from NULL to non-NULL or non-NULL to NULL.
>>
>> In the general case where the column is nullable, better use "IS
>> DISTINCT FROM" instead of inequality:
>> IF NEW.colname IS DISTINCT FROM OLD.colname
>>
>> Best regards,
>> --
>> Daniel
>> PostgreSQL-powered mail user agent and storage:
>> http://www.manitou-mail.org
>
> Thanks for the heads up. This is a case I usually only remember when I
> start
> testing the function.
> --
> Adrian Klaver
> aklaver@comcast.net
>
> --
> Sent via pgsql-general mailing list (pgsql-general@postgresql.org)
> To make changes to your subscription:
> http://www.postgresql.org/mailpref/pgsql-general