comparing OLD and NEW in update trigger..

From: Alex Mayrhofer <axelm(at)nona(dot)net>
To: pgsql-general(at)postgresql(dot)org
Subject: comparing OLD and NEW in update trigger..
Date: 2006-01-26 08:05:02
Message-ID: 43D882AE.5090404@nona.net
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general


Hi there,

i'm planning to use the following trigger function to update a timestamp of
a row when it is UPDATEd:

CREATE OR REPLACE modified_trigger() RETURNS opaque AS $$
BEGIN
NEW.modify_timestamp := now();
END;
$$ LANGUAGE SQL;

Since i like to use the same trigger procedure for various tables, i'm
planning to keep it very generic.

What i'd like to do now is to just update the modify_timestamp column if OLD
and NEW are different. I'd LOOP over the row elements, and compare each
column of OLD with NEW, and bailing out if there's a difference.

I'd appreciate your help on the following two questions:

- How can i get the column names of NEW/OLD? Is there a set returning
function for this?
- Is there a more efficient way to compare whole rows?

thanks,

Alex Mayrhofer
---
http://nona.net/features/map/

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Benjamin Smith 2006-01-26 08:14:41 Re: Postgresql Segfault in 8.1
Previous Message Alex Mayrhofer 2006-01-26 07:50:19 comparing OLD and NEW in update trigger..