[prev in list] [next in list] [prev in thread] [next in thread] 

List:       postgresql-sql
Subject:    Re: [SQL] How to notice column changes in trigger
From:       Jan Wieck <JanWieck () yahoo ! com>
Date:       2003-03-31 15:49:13
[Download RAW message or body]

Josh Berkus wrote:
> 
> Andreas,
> 
> > 1) update test set a=0 -> trigger does its work
> > 2) update test set a=0, b=1, c=2 -> trigger does nothing
> > 3) update test set a=0, b=b, c=c -> trigger does nothing, but content of
> > a and b dont change either although touched
> 
> > IF OLD.b=NEW.b will not work, case 3) will falsely execute the trigger
> > code.
> 
> I still don't get why you'd want to do this.   Can you provide are real-world
> example where there is a difference between setting B=B and not updating B?

Setting b=b and not updating it is indeed identical ... at least after
the targetlist completion in PostgreSQL. But it is different from
b=<b's-old-value>, and the fact that we cannot distinguish between these
two (inside the trigger) prevents us from skipping foreign key checks if
your fk-values haven't been touched.


Jan

-- 
#======================================================================#
# It's easier to get forgiveness for being wrong than for being right. #
# Let's break this rule - forgive me.                                  #
#================================================== JanWieck@Yahoo.com #


---------------------------(end of broadcast)---------------------------
TIP 3: if posting/reading through Usenet, please send an appropriate
subscribe-nomail command to majordomo@postgresql.org so that your
message can get through to the mailing list cleanly
[prev in list] [next in list] [prev in thread] [next in thread] 

Configure | About | News | Add a list | Sponsored by KoreLogic