Re: minimal update
От | Andrew Dunstan |
---|---|
Тема | Re: minimal update |
Дата | |
Msg-id | 472F30A7.6070505@dunslane.net обсуждение исходный текст |
Ответ на | Re: minimal update (Tom Lane <tgl@sss.pgh.pa.us>) |
Ответы |
Re: minimal update
|
Список | pgsql-hackers |
Tom Lane wrote: > Andrew Dunstan <andrew@dunslane.net> writes: > >> Tom Lane wrote: >> >>> A BEFORE UPDATE trigger would be better, and probably hardly more >>> expensive than a wired-in facility (especially if you were willing to >>> write it in C). >>> > > >> Yes. I also prefer the trigger idea to a rule because triggers are easy >> to enable and disable. It's still a lot of work for what must be a >> common want, though. Could it be done generically? >> > > Well, you could write the trigger in C and it'd work for any table. > I think it could be as simple as a memcmp of the tuples' data areas, > since we now require padding bytes to be 0 ... > > > Something like this fragment? newtuple = trigdata->tg_newtuple; oldtuple = trigdata->tg_trigtuple; rettuple = newtuple; if (newtuple->t_len == oldtuple->t_len && newtuple->t_data->t_hoff == oldtuple->t_data->t_hoff && memcmp(GETSTRUCT(newtuple),GETSTRUCT(oldtuple), newtuple->t_len - newtuple->t_data->t_hoff) == 0) rettuple =NULL; return PointerGetDatum(rettuple); Also, when did we first require padding bytes to be 0? cheers andrew
В списке pgsql-hackers по дате отправления: