From: | Daniel Gustafsson <daniel(at)yesql(dot)se> |
---|---|
To: | Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com> |
Cc: | pgsql-hackers <pgsql-hackers(at)postgresql(dot)org> |
Subject: | Re: allow trigger to get updated columns |
Date: | 2020-03-05 12:53:01 |
Message-ID: | CEA65957-59AA-4BEA-AD33-5334EAC3E34C@yesql.se |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-hackers |
> On 24 Feb 2020, at 10:58, Peter Eisentraut <peter(dot)eisentraut(at)2ndquadrant(dot)com> wrote:
>
> This is a change to make the bitmap of updated columns available to a trigger in TriggerData. This is the same idea as was recently done to generated columns [0]: Generic triggers such as tsvector_update_trigger can use this information to skip work if the columns they are interested in haven't changed. With the generated columns change, perhaps this isn't so interesting anymore, but I suspect a lot of existing installations still use tsvector_update_trigger. In any case, since I had already written the code, I figured I post it here. Perhaps there are other use cases.
I wouldn't at all be surprised if there are usecases for this in the wild, and
given the very minor impact I absolutely think it's worth doing. The patches
both apply, compile and pass tests without warnings.
The 0001 refactoring patch seems a clear win to me.
In the 0002 patch:
+ For <literal>UPDATE</literal> triggers, a bitmap set indicating the
+ columns that were updated by the triggering command. Generic trigger
Is it worth pointing out that tg_updatedcols will be NULL rather than an empty
Bitmapset for non-UPDATE triggers? bitmapset.c treats NULL as an empty bitmap
but since a Bitmapset can be allocated but empty, maybe it's worth being
explicit to help developers?
There isn't really a test suite that excercises this IIUC, how about adding
something like the attached diff to contrib/lo? It seemed like a lower impact
change than widening test_tsvector.
+1 on the patchset, marking this entry as Ready For Committer.
cheers ./daniel
Attachment | Content-Type | Size |
---|---|---|
lo_trig_test.diff | application/octet-stream | 886 bytes |
From | Date | Subject | |
---|---|---|---|
Next Message | Euler Taveira | 2020-03-05 12:59:11 | Re: logical replication empty transactions |
Previous Message | Peter Eisentraut | 2020-03-05 12:45:24 | Re: Restore replication settings when modifying a field type |