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
|
Список | 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 по дате отправления: