Re: [GENERAL] Trigger documentation? Need more examples.. pleeeze.. ; -)

From: Zakkr <zakkr(at)zf(dot)jcu(dot)cz>
To: Henrique Pantarotto <scanner(at)cepa(dot)com(dot)br>
Cc: pgsql-general(at)postgreSQL(dot)org
Subject: Re: [GENERAL] Trigger documentation? Need more examples.. pleeeze.. ; -)
Date: 1999-08-20 15:13:42
Message-ID: Pine.LNX.3.96.990820165112.12140A-100000@ara.zf.jcu.cz
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

On Fri, 20 Aug 1999, Henrique Pantarotto wrote:

> I would like to know how, from a trigger C function, can I get the "old" and
> "new" value for an updated field. Is this possible? How do I do that?
>
> For example, if I do:
>
> update users set username = "clinton" where id = "2400"

example:
-------
TupleDesc tupdesc;
HeapTuple tnew,
told;
char *oldvalue,
*newvalue;

if (TRIGGER_FIRED_BY_UPDATE(CurrentTriggerData->tg_event)) {
tnew = CurrentTriggerData->tg_newtuple;
told = CurrentTriggerData->tg_trigtuple;
}
tupdesc = CurrentTriggerData->tg_relation->rd_att;

newvalue = SPI_getvalue(tnew, tupdesc, SPI_fnumber(tupdesc, "username"));
oldvalue = SPI_getvalue(told, tupdesc, SPI_fnumber(tupdesc, "username"));
------

NOTE: If you run trigger AFTER|BEFORE insert in CurrentTriggerData
is set 'tg_trigtuple' only.

> Did you understand? ;-)

And you? :-)
Zakkr

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Eric Enockson 1999-08-20 16:17:09 BOUNCE pgsql-sql@postgreSQL.org: Non-member submission from [Eric Enockson <erice@cloudband.com>]
Previous Message ralli 1999-08-20 13:50:43 unsubscribe