diff options
author | Peter Eisentraut <peter@eisentraut.org> | 2020-03-09 09:22:22 +0100 |
---|---|---|
committer | Peter Eisentraut <peter@eisentraut.org> | 2020-03-09 09:34:55 +0100 |
commit | 71d60e2aa05157efec28393b15c0b0b9fc1b210c (patch) | |
tree | 535e192f42bee56fb4978b003cbd22e099ea2f46 /contrib/lo/lo.c | |
parent | 8f152b6c50c764d4c300e73a535da88cd1b18fa5 (diff) | |
download | postgresql-71d60e2aa05157efec28393b15c0b0b9fc1b210c.tar.gz postgresql-71d60e2aa05157efec28393b15c0b0b9fc1b210c.zip |
Add tg_updatedcols to TriggerData
This allows a trigger function to determine for an UPDATE trigger
which columns were actually updated. This allows some optimizations
in generic trigger functions such as lo_manage and
tsvector_update_trigger.
Reviewed-by: Daniel Gustafsson <daniel@yesql.se>
Discussion: https://www.postgresql.org/message-id/flat/11c5f156-67a9-0fb5-8200-2a8018eb2e0c@2ndquadrant.com
Diffstat (limited to 'contrib/lo/lo.c')
-rw-r--r-- | contrib/lo/lo.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/contrib/lo/lo.c b/contrib/lo/lo.c index 4585923ee2b..b9847081db6 100644 --- a/contrib/lo/lo.c +++ b/contrib/lo/lo.c @@ -74,7 +74,8 @@ lo_manage(PG_FUNCTION_ARGS) * Here, if the value of the monitored attribute changes, then the large * object associated with the original value is unlinked. */ - if (newtuple != NULL) + if (newtuple != NULL && + bms_is_member(attnum - FirstLowInvalidHeapAttributeNumber, trigdata->tg_updatedcols)) { char *orig = SPI_getvalue(trigtuple, tupdesc, attnum); char *newv = SPI_getvalue(newtuple, tupdesc, attnum); |