Trigger using 'if NEW = OLD' - Mailing list pgsql-general

From Colin Fox
Subject Trigger using 'if NEW = OLD'
Date
Msg-id pan.2004.03.03.12.39.36.226411@cfconsulting.ca
Whole thread Raw
List pgsql-general
I've got a trigger function that gets executed after an insert or an
update. It basically just creates a copy of the row in a history table.

However, there are cases when a row will be updated to be the same as it
was - in other words, no change. In these cases, the history is useless
and taking up space.

So I want the procedure to start with:

IF NEW = OLD then
    return NEW;
end if;

thus exiting before the history record gets created.

However, if I do that, I get:
WARNING:  line 6 at if
ERROR:  NEW used in non-rule query

What is a non-rule query? :(

I'm led to believe by the documentation and other postings I've seen
archived on the web that this should be possible.

Am I doing something wrong, or do I have to do it the long way around
(field by field comparison)?

Thanks,
   cf

--
Colin Fox
President
CF Consulting Inc.


pgsql-general by date:

Previous
From: "Ara Anjargolian"
Date:
Subject: C locale
Next
From: "scott.marlowe"
Date:
Subject: Re: autocommit to off?