> On 24 Feb 2020, at 10:58, Peter Eisentraut <peter.eisentr...@2ndquadrant.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: lo_trig_test.diff
Description: Binary data

Reply via email to