Tom Lane wrote: > Itagaki Takahiro <itagaki.takah...@oss.ntt.co.jp> writes: >> Sure, and I found there might be difference between "UPDATE" and >> "UPDATE OF {all-columns}" triggers. UPDATE trigger is always fired >> when a row is updated even if none of the columns are actually >> modified, but UPDATE OF {all-columns} trigger is fired only when >> at least one of the columns is modified. > > I'm betraying the fact that I haven't read the patch, but ... > exactly how, and when, are you determining whether a column has > been "modified"? I can't count the number of times somebody > has proposed simplistic and incorrect solutions to that. > Usually they forget about BEFORE triggers changing the row.
It uses heap_tuple_attr_equals() to check whether a certain column is modified, or not. Itagaki-san, isn't it more suitable to check rte->modifiedCols than heap_tuple_attr_equals()? Although, this information is not delivered to executor... What is the correct behavior when UPDATE statement set a new value but it was identical to the original value? In this case, heap_tuple_attr_equals() cannot detect the column is used as a target of the UPDATE. Thanks, -- OSS Platform Development Division, NEC KaiGai Kohei <kai...@ak.jp.nec.com> -- Sent via pgsql-hackers mailing list (pgsql-hackers@postgresql.org) To make changes to your subscription: http://www.postgresql.org/mailpref/pgsql-hackers