Re: minimal update - Mailing list pgsql-hackers

From Andrew Dunstan
Subject Re: minimal update
Date
Msg-id 472F30A7.6070505@dunslane.net
Whole thread Raw
In response to Re: minimal update  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: minimal update  (Tom Lane <tgl@sss.pgh.pa.us>)
List pgsql-hackers

Tom Lane wrote:
> Andrew Dunstan <andrew@dunslane.net> writes:
>   
>> Tom Lane wrote:
>>     
>>> A BEFORE UPDATE trigger would be better, and probably hardly more
>>> expensive than a wired-in facility (especially if you were willing to
>>> write it in C).
>>>       
>
>   
>> Yes. I also  prefer the trigger idea to a rule because triggers are easy 
>> to enable  and disable. It's still a lot of work for what must be a 
>> common want, though. Could it be done generically?
>>     
>
> Well, you could write the trigger in C and it'd work for any table.
> I think it could be as simple as a memcmp of the tuples' data areas,
> since we now require padding bytes to be 0 ...
>
>             
>   


Something like this fragment?
 newtuple = trigdata->tg_newtuple; oldtuple = trigdata->tg_trigtuple; rettuple = newtuple;
 if (newtuple->t_len == oldtuple->t_len &&     newtuple->t_data->t_hoff == oldtuple->t_data->t_hoff &&
memcmp(GETSTRUCT(newtuple),GETSTRUCT(oldtuple),           newtuple->t_len - newtuple->t_data->t_hoff) == 0)   rettuple
=NULL;
 
 return PointerGetDatum(rettuple);


Also, when did we first require padding bytes to be 0?


cheers

andrew


pgsql-hackers by date:

Previous
From: "Pavan Deolasee"
Date:
Subject: Re: Fwd: Clarification about HOT
Next
From: "Gokulakannan Somasundaram"
Date:
Subject: Re: Fwd: Clarification about HOT