> On 24 Feb 2020, at 10:58, Peter Eisentraut <peter.eisentraut@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
aswas recently done to generated columns [0]: Generic triggers such as tsvector_update_trigger can use this information
toskip work if the columns they are interested in haven't changed. With the generated columns change, perhaps this
isn'tso 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