diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c
index 66401f2839..a409ff0be1 100644
--- a/src/backend/commands/trigger.c
+++ b/src/backend/commands/trigger.c
@@ -2992,6 +2992,8 @@ ExecBRUpdateTriggers(EState *estate, EPQState *epqstate,
 
 			if (newslot != epqslot_clean)
 				ExecCopySlot(newslot, epqslot_clean);
+			else
+				ExecMaterializeSlot(newslot);
 		}
 
 		trigtuple = ExecFetchSlotHeapTuple(oldslot, true, &should_free_trig);
