Re: After Trigger assignment to NEW - Mailing list pgsql-sql

From Achilleus Mantzios
Subject Re: After Trigger assignment to NEW
Date
Msg-id Pine.LNX.4.44.0602242150390.20246-100000@matrix.gatewaynet.com
Whole thread Raw
In response to Re: After Trigger assignment to NEW  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-sql
O Tom Lane έγραψε στις Feb 24, 2006 :

> Alvaro Herrera <alvherre@commandprompt.com> writes:
> > Tom Lane wrote:
> >> Achilleus Mantzios <achill@matrix.gatewaynet.com> writes:
> >>> Is there a reason that the NEW values should remain unchanged in AFTER 
> >>> row triggers?
> >> 
> >> By definition, an AFTER trigger is too late to change what was stored.
> >> Use a BEFORE trigger.
> 
> > But a BEFORE trigger would alter the stored tuple, which is not what
> > Achilleus wants AFAIU.
> 
> Oh, I misunderstood what he wanted ... and now that I do understand,
> I think it's a really terrible idea :-(.  A large part of the point
> of using an AFTER trigger is to be certain you know exactly what got
> stored.  (BEFORE triggers can never know this with certainty because
> there might be another BEFORE trigger that runs after them and edits the
> tuple some more.)  If one AFTER trigger could falsify the data seen by
> the next, then that guarantee crumbles.  For instance, a minor
> programming error in a user-written trigger could break foreign-key
> checking.  No thanks.

Alvaro, Tom,
thanx a lot,
i'll have to incorporate that into dbmirror.


> 
> > I think the desired effect can be had by having DBMirror check the
> > source relation of the inserted tuple (There is a hidden attributa
> > called tableoid IIRC that can be used for that, I think).
> 
> I agree --- the correct solution is to change the DBMirror triggers to
> incorporate the desired filtering logic.
> 
>             regards, tom lane
> 

-- 
-Achilleus



pgsql-sql by date:

Previous
From: Achilleus Mantzios
Date:
Subject: Re: After Trigger assignment to NEW
Next
From: "Owen Jacobson"
Date:
Subject: Re: After Trigger assignment to NEW