diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c index d71c0a4322..9ff6bdd439 100644 --- a/src/backend/executor/nodeModifyTable.c +++ b/src/backend/executor/nodeModifyTable.c @@ -334,7 +334,8 @@ ExecComputeStoredGenerated(EState *estate, TupleTableSlot *slot, CmdType cmdtype econtext = GetPerTupleExprContext(estate); econtext->ecxt_scantuple = slot; - val = ExecEvalExpr(resultRelInfo->ri_GeneratedExprs[i], econtext, &isnull); + val = datumCopy(ExecEvalExpr(resultRelInfo->ri_GeneratedExprs[i], econtext, &isnull), + attr->attbyval, attr->attlen); values[i] = val; nulls[i] = isnull;