minimal update trigger
От | Andrew Dunstan |
---|---|
Тема | minimal update trigger |
Дата | |
Msg-id | 47BB913E.3080401@dunslane.net обсуждение исходный текст |
Ответы |
Re: minimal update trigger
|
Список | pgsql-hackers |
As discussed a little while back, I would like to add a generic trigger function which will force an update to skip if the new and old tuples are identical. The guts of this is the following snippet of code: | rettuple = newtuple = trigdata->tg_newtuple; oldtuple = trigdata->tg_trigtuple; if (newtuple->t_len == oldtuple->t_len && newtuple->t_data->t_hoff == oldtuple->t_data->t_hoff && HeapTupleHeaderGetNatts(newtuple->t_data) == HeapTupleHeaderGetNatts(oldtuple->t_data) && (newtuple->t_data->t_infomask& ~HEAP_XACT_MASK) == (oldtuple->t_data->t_infomask & ~HEAP_XACT_MASK) && memcmp(((char *)newtuple->t_data) + offsetof(HeapTupleHeaderData, t_bits), ((char *)oldtuple->t_data)+ offsetof(HeapTupleHeaderData, t_bits), newtuple->t_len - offsetof(HeapTupleHeaderData,t_bits)) == 0) { rettuple = NULL; } return rettuple; I propose to call the function pg_minimal_update. Unless there is an objection I will put together a patch + docs for this shortly. Not quite sure what section of the docsto put it in - maybe a new subsection of the Functions chapter? cheers andrew |
В списке pgsql-hackers по дате отправления: