@@ -2591,6 +2591,7 @@ ExecBSUpdateTriggers(EState *estate, ResultRelInfo *relinfo)
2591
2591
LocTriggerData .tg_event = TRIGGER_EVENT_UPDATE |
2592
2592
TRIGGER_EVENT_BEFORE ;
2593
2593
LocTriggerData .tg_relation = relinfo -> ri_RelationDesc ;
2594
+ LocTriggerData .tg_updatedcols = updatedCols ;
2594
2595
for (i = 0 ; i < trigdesc -> numtriggers ; i ++ )
2595
2596
{
2596
2597
Trigger * trigger = & trigdesc -> triggers [i ];
@@ -2699,6 +2700,7 @@ ExecBRUpdateTriggers(EState *estate, EPQState *epqstate,
2699
2700
TRIGGER_EVENT_BEFORE ;
2700
2701
LocTriggerData .tg_relation = relinfo -> ri_RelationDesc ;
2701
2702
updatedCols = GetAllUpdatedColumns (relinfo , estate );
2703
+ LocTriggerData .tg_updatedcols = updatedCols ;
2702
2704
for (i = 0 ; i < trigdesc -> numtriggers ; i ++ )
2703
2705
{
2704
2706
Trigger * trigger = & trigdesc -> triggers [i ];
@@ -3255,6 +3257,7 @@ typedef struct AfterTriggerSharedData
3255
3257
Oid ats_relid ; /* the relation it's on */
3256
3258
CommandId ats_firing_id ; /* ID for firing cycle */
3257
3259
struct AfterTriggersTableData * ats_table ; /* transition table access */
3260
+ Bitmapset * ats_modifiedcols ; /* modified columns */
3258
3261
} AfterTriggerSharedData ;
3259
3262
3260
3263
typedef struct AfterTriggerEventData * AfterTriggerEvent ;
@@ -3954,6 +3957,8 @@ AfterTriggerExecute(EState *estate,
3954
3957
LocTriggerData .tg_event =
3955
3958
evtshared -> ats_event & (TRIGGER_EVENT_OPMASK | TRIGGER_EVENT_ROW );
3956
3959
LocTriggerData .tg_relation = rel ;
3960
+ if (TRIGGER_FOR_UPDATE (LocTriggerData .tg_trigger -> tgtype ))
3961
+ LocTriggerData .tg_updatedcols = evtshared -> ats_modifiedcols ;
3957
3962
3958
3963
MemoryContextReset (per_tuple_context );
3959
3964
@@ -5641,6 +5646,7 @@ AfterTriggerSaveEvent(EState *estate, ResultRelInfo *relinfo,
5641
5646
new_shared .ats_table = transition_capture -> tcs_private ;
5642
5647
else
5643
5648
new_shared .ats_table = NULL ;
5649
+ new_shared .ats_modifiedcols = modifiedCols ;
5644
5650
5645
5651
afterTriggerAddEvent (& afterTriggers .query_stack [afterTriggers .query_depth ].events ,
5646
5652
& new_event , & new_shared );
0 commit comments