| From: | Itagaki Takahiro <itagaki(dot)takahiro(at)oss(dot)ntt(dot)co(dot)jp> | 
|---|---|
| To: | Peter Eisentraut <peter_e(at)gmx(dot)net> | 
| Cc: | pgsql-hackers(at)postgresql(dot)org | 
| Subject: | Re: Triggers on columns | 
| Date: | 2009-09-07 10:53:01 | 
| Message-ID: | 20090907193335.E701.52131E4D@oss.ntt.co.jp | 
| Views: | Whole Thread | Raw Message | Download mbox | Resend email | 
| Thread: | |
| Lists: | pgsql-hackers | 
Peter Eisentraut <peter_e(at)gmx(dot)net> wrote:
> Therefore, it cannot be completely unexpected if column triggers are
> called even if the column was not actually changed in a semantically
> significant way.
Ok, the attached patch implements standard-compliant version of
column trigger.
Retrieving modified columns is not so difficult as I expected.
It is in:
  rt_fetch(relinfo->ri_RangeTableIndex, estate->es_range_table)->modifiedCols
and the information are passed from caller to trigger routines.
However, to be honest, I think standard-compliant column trigger is
useless... I'm thinking additional extension for triggers -- if we
want to check modifications of actual values, it could be defined as:
    CREATE TRIGGER trig BEFORE UPDATE ON tbl FOR EACH ROW
        WHEN (NEW.col <> OLD.col) EXECUTE PROCEDURE trigger_func();
Regards,
---
ITAGAKI Takahiro
NTT Open Source Software Center
| Attachment | Content-Type | Size | 
|---|---|---|
| standard-column-trigger-20090907.patch | application/octet-stream | 40.3 KB | 
| From | Date | Subject | |
|---|---|---|---|
| Next Message | Magnus Hagander | 2009-09-07 11:22:19 | Re: _WIN32_WINNT should be 0x0501 in win32.h | 
| Previous Message | Peter Eisentraut | 2009-09-07 10:28:16 | Re: Rename StrNCpy to avoid conflictions on win32 |