Re: minimal update

Поиск
Список
Период
Сортировка
От Tom Lane
Тема Re: minimal update
Дата
Msg-id 18370.1198884294@sss.pgh.pa.us
обсуждение исходный текст
Ответ на Re: minimal update  (Andrew Dunstan <andrew@dunslane.net>)
Ответы Re: minimal update  (Andrew Dunstan <andrew@dunslane.net>)
Список pgsql-hackers
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.
        regards, tom lane


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

Предыдущее
От: Andrew Dunstan
Дата:
Сообщение: Re: minimal update
Следующее
От: Simon Riggs
Дата:
Сообщение: Re: Archiver behavior at shutdown