aboutsummaryrefslogtreecommitdiff
path: root/src/backend/executor/nodeModifyTable.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/executor/nodeModifyTable.c')
-rw-r--r--src/backend/executor/nodeModifyTable.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c
index e8d655868ae..3fa2b930a52 100644
--- a/src/backend/executor/nodeModifyTable.c
+++ b/src/backend/executor/nodeModifyTable.c
@@ -2883,8 +2883,9 @@ lmerge_matched:
if (!ExecUpdatePrologue(context, resultRelInfo,
tupleid, NULL, newslot, &result))
{
- /* Blocked by trigger, or concurrent update/delete */
- break;
+ if (result == TM_Ok)
+ return true; /* "do nothing" */
+ break; /* concurrent update/delete */
}
result = ExecUpdateAct(context, resultRelInfo, tupleid, NULL,
newslot, false, &updateCxt);
@@ -2901,8 +2902,9 @@ lmerge_matched:
if (!ExecDeletePrologue(context, resultRelInfo, tupleid,
NULL, NULL, &result))
{
- /* Blocked by trigger, or concurrent update/delete */
- break;
+ if (result == TM_Ok)
+ return true; /* "do nothing" */
+ break; /* concurrent update/delete */
}
result = ExecDeleteAct(context, resultRelInfo, tupleid, false);
if (result == TM_Ok)