expand-trigger-tuple.patch
application/octet-stream
Filename: expand-trigger-tuple.patch
Type: application/octet-stream
Part: 0
Patch
Format: unified
| File | + | − |
|---|---|---|
| src/backend/commands/trigger.c | 3 | 0 |
diff --git a/src/backend/commands/trigger.c b/src/backend/commands/trigger.c
index 28b98d1..2b26e7f 100644
--- a/src/backend/commands/trigger.c
+++ b/src/backend/commands/trigger.c
@@ -2644,6 +2644,7 @@ ExecBRUpdateTriggers(EState *estate, EPQState *epqstate,
if (fdw_trigtuple == NULL)
{
TupleTableSlot *epqslot_candidate = NULL;
+ TupleDesc tupDesc = RelationGetDescr(relinfo->ri_RelationDesc);
/* get a copy of the on-disk tuple we are planning to update */
if (!GetTupleForTrigger(estate, epqstate, relinfo, tupleid,
@@ -2673,6 +2674,8 @@ ExecBRUpdateTriggers(EState *estate, EPQState *epqstate,
}
trigtuple = ExecFetchSlotHeapTuple(oldslot, true, &should_free_trig);
+ if (HeapTupleHeaderGetNatts(trigtuple->t_data) < tupDesc->natts)
+ trigtuple = heap_expand_tuple(trigtuple, tupDesc);
}
else
{