Hannes Erven wrote :
> Hi folks,
>
>
> On 2013-03-22 13:32, Bertrand Janin wrote:
> > UPDATE demo
> > SET value = value
> > WHERE id = 1;
>
>
> On 2013-03-22 14:55, Tom Lane wrote:
> >
> >It's not *necessary* to do so. However, avoiding it would require
> >sitting there and comparing the old and new tuples,
>
>
> But in this case, no tuples would need to be compared: just by
> looking at the query is becomes clear that it is a no-op.
> Isn't this something the planner is or could be aware of?
>
> Betrand, out of curiosity: is this a synthentic test case or do you
> really have an application that generates queries like this?
I used the value=value to emphasize the example, in my use case it would be
value='whatever is already there'.
Tom is right, this would be an optimization for a corner case, I noticed this
when running a generated script for a batch update that wasn't given a ton of
attention. The BEFORE UPDATE trigger will work great.
-b