Re: minimal update

Поиск
Список
Период
Сортировка
От Andrew Dunstan
Тема Re: minimal update
Дата
Msg-id 4775A22E.6090306@dunslane.net
обсуждение исходный текст
Ответ на Re: minimal update  (Tom Lane <tgl@sss.pgh.pa.us>)
Ответы Re: minimal update  (Andrew Dunstan <andrew@dunslane.net>)
Список pgsql-hackers

Tom Lane wrote:
> Andrew Dunstan <andrew@dunslane.net> writes:
>   
>> How does this look?
>>     
>
>   
>>     if (newtuple->t_len == oldtuple->t_len &&
>>         newtuple->t_data->t_hoff == oldtuple->t_data->t_hoff &&
>>         HeapTupleHeaderGetNatts(newtuple) == HeapTupleHeaderGetNatts(oldtuple) &&
>>         (newtuple->t_data->t_infomask & (HEAP_HASOID|HEAP_HASNULL)) == (oldtuple->t_data->t_infomask &
(HEAP_HASOID|HEAP_HASNULL))&&
 
>>         memcmp(newtuple->t_data + offsetof(HeapTupleHeaderData, t_bits),
>>                oldtuple->t_data + offsetof(HeapTupleHeaderData, t_bits)
>>                newtuple->t_len - offsetof(HeapTupleHeaderData, t_bits)) == 0)
>>     
>
>   
>>       rettuple = NULL;
>>     
>
> Looks sane.  It might be even saner if you compare all of the
> non-visibility-related infomask bits, viz
>
>     (newtuple->t_data->t_infomask & ~HEAP_XACT_MASK) ==
>     (oldtuple->t_data->t_infomask & ~HEAP_XACT_MASK)
>
> rather than just HASOID and HASNULL.
>
>             
>   

Sadly, the memcmp is failing on my test ("update foo set bar = bar") on 
8.2. Looks like I'm in for weekend with my fave debugger :-(

cheers

andrew


В списке pgsql-hackers по дате отправления:

Предыдущее
От: Greg Smith
Дата:
Сообщение: Re: Archiver behavior at shutdown
Следующее
От: Bruce Momjian
Дата:
Сообщение: Re: Spoofing as the postmaster