O Tom Lane έγραψε στις Feb 24, 2006 :

> Alvaro Herrera <[EMAIL PROTECTED]> writes:
> > Tom Lane wrote:
> >> Achilleus Mantzios <[EMAIL PROTECTED]> 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


---------------------------(end of broadcast)---------------------------
TIP 4: Have you searched our list archives?

               http://archives.postgresql.org

Reply via email to