Re: minimal update - Mailing list pgsql-hackers

From Andrew Dunstan
Subject Re: minimal update
Date
Msg-id 47332F72.8040809@dunslane.net
Whole thread Raw
In response to Re: minimal update  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: minimal update  (Michael Glaesemann <grzm@seespotcode.net>)
Re: minimal update  (Bruce Momjian <bruce@momjian.us>)
List pgsql-hackers

Tom Lane wrote:
> Michael Glaesemann <grzm@seespotcode.net> writes:
>   
>> What would be the disadvantages of always doing this, i.e., just  
>> making this part of the normal update path in the backend?
>>     
>
> (1) cycles wasted to no purpose in the vast majority of cases.
>
> (2) visibly inconsistent behavior for apps that pay attention
> to ctid/xmin/etc.
>
> (3) visibly inconsistent behavior for apps that have AFTER triggers.
>
> There's enough other overhead in issuing an update (network,
> parsing/planning/etc) that a sanely coded application should try
> to avoid issuing no-op updates anyway.  The proposed trigger is
> just a band-aid IMHO.
>
> I think having it as an optional trigger is a reasonable compromise.
>
>             
>   

Right. I never proposed making this the default behaviour, for all these 
good reasons.

The point about making the app try to avoid no-op updates is that this 
can impose some quite considerable code complexity on the app, 
especially where the number of updated fields is large. It's fragile and 
error-prone. A simple switch that can turn a trigger on or off will be 
nicer. Syntax support for that might be even nicer, but there appears to 
be some resistance to that, so I can easily settle for the trigger.

cheers

andrew


pgsql-hackers by date:

Previous
From: Peter Eisentraut
Date:
Subject: Re: Postgresql 8.3 beta crash
Next
From: Alvaro Herrera
Date:
Subject: Re: A small rant about coding style for backend functions