Re: minimal update

From: Tom Lane <tgl(at)sss(dot)pgh(dot)pa(dot)us>
To: Andrew Dunstan <andrew(at)dunslane(dot)net>
Cc: PostgreSQL-development <pgsql-hackers(at)postgresql(dot)org>
Subject: Re: minimal update
Date: 2007-12-28 23:24:54
Message-ID: 18370.1198884294@sss.pgh.pa.us
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-hackers

Andrew Dunstan <andrew(at)dunslane(dot)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

In response to

Responses

Browse pgsql-hackers by date

  From Date Subject
Next Message Simon Riggs 2007-12-29 00:04:44 Re: Archiver behavior at shutdown
Previous Message Andrew Dunstan 2007-12-28 22:56:56 Re: minimal update