@@ -2591,6 +2591,7 @@ ExecBSUpdateTriggers(EState *estate, ResultRelInfo *relinfo)
25912591 LocTriggerData .tg_event = TRIGGER_EVENT_UPDATE |
25922592 TRIGGER_EVENT_BEFORE ;
25932593 LocTriggerData .tg_relation = relinfo -> ri_RelationDesc ;
2594+ LocTriggerData .tg_updatedcols = updatedCols ;
25942595 for (i = 0 ; i < trigdesc -> numtriggers ; i ++ )
25952596 {
25962597 Trigger * trigger = & trigdesc -> triggers [i ];
@@ -2699,6 +2700,7 @@ ExecBRUpdateTriggers(EState *estate, EPQState *epqstate,
26992700 TRIGGER_EVENT_BEFORE ;
27002701 LocTriggerData .tg_relation = relinfo -> ri_RelationDesc ;
27012702 updatedCols = GetAllUpdatedColumns (relinfo , estate );
2703+ LocTriggerData .tg_updatedcols = updatedCols ;
27022704 for (i = 0 ; i < trigdesc -> numtriggers ; i ++ )
27032705 {
27042706 Trigger * trigger = & trigdesc -> triggers [i ];
@@ -3255,6 +3257,7 @@ typedef struct AfterTriggerSharedData
32553257 Oid ats_relid ; /* the relation it's on */
32563258 CommandId ats_firing_id ; /* ID for firing cycle */
32573259 struct AfterTriggersTableData * ats_table ; /* transition table access */
3260+ Bitmapset * ats_modifiedcols ; /* modified columns */
32583261} AfterTriggerSharedData ;
32593262
32603263typedef struct AfterTriggerEventData * AfterTriggerEvent ;
@@ -3954,6 +3957,8 @@ AfterTriggerExecute(EState *estate,
39543957 LocTriggerData .tg_event =
39553958 evtshared -> ats_event & (TRIGGER_EVENT_OPMASK | TRIGGER_EVENT_ROW );
39563959 LocTriggerData .tg_relation = rel ;
3960+ if (TRIGGER_FOR_UPDATE (LocTriggerData .tg_trigger -> tgtype ))
3961+ LocTriggerData .tg_updatedcols = evtshared -> ats_modifiedcols ;
39573962
39583963 MemoryContextReset (per_tuple_context );
39593964
@@ -5641,6 +5646,7 @@ AfterTriggerSaveEvent(EState *estate, ResultRelInfo *relinfo,
56415646 new_shared .ats_table = transition_capture -> tcs_private ;
56425647 else
56435648 new_shared .ats_table = NULL ;
5649+ new_shared .ats_modifiedcols = modifiedCols ;
56445650
56455651 afterTriggerAddEvent (& afterTriggers .query_stack [afterTriggers .query_depth ].events ,
56465652 & new_event , & new_shared );
0 commit comments