BUG #7924: Trigger update function don't take correct values

From: mv(dot)gonzalez(at)cir(dot)es
To: pgsql-bugs(at)postgresql(dot)org
Subject: BUG #7924: Trigger update function don't take correct values
Date: 2013-03-08 11:38:03
Message-ID: E1UDvch-0004Qr-4C@wrigleys.postgresql.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-bugs

The following bug has been logged on the website:

Bug reference: 7924
Logged by: Maria
Email address: mv(dot)gonzalez(at)cir(dot)es
PostgreSQL version: Unsupported/Unknown
Operating system: RedHat
Description:

Hi!

I have a trigger that when you update a value on a table, makes an insert
into another table.

The trigger looks like the following:

BEGIN
set datestyle to 'sql';
set datestyle to 'european';
IF (TG_OP = 'UPDATE' and (OLD.situation!=NEW.situation)) THEN
INSERT INTO table_B VALUES (OLD.id,NEW.situation,NOW());
END IF;
RETURN NULL;
END;

For exemple, If I do the next querys:
--> update table_A set situation='Started' where id='23';
On table_A appears:
id | situation
--------+-----------
23 | Started

On table_B appears:
id | situation | when
--------+-----------+---------------------
23 | Started | 2013-03-08 12:33:35

--> update table_A set situation='Waiting' where id='23';
On table_A appears:
id | situation
--------+-----------
23 | Waiting

On table_B appears:
id | situation | when
--------+-----------+---------------------
23 | Started | 2013-03-08 12:33:35
23 | Started | 2013-03-08 12:33:37

I don't understand why after the second update, the insert done on table_B
is incorrect, and has the same values that the first one.

I've been looking for some kind of explanation like cache or something, but
I couldn't find anything.

Thanks in advance.

Maria

Responses

Browse pgsql-bugs by date

  From Date Subject
Next Message Josh Kupershmidt 2013-03-08 15:58:57 Re: [BUGS] BUG #7873: pg_restore --clean tries to drop tables that don't exist
Previous Message Heikki Linnakangas 2013-03-08 11:04:32 Re: 8.4: COPY continues after client disconnects