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.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c
index d328856ae5b..1e79d18bf35 100644
--- a/src/backend/executor/nodeModifyTable.c
+++ b/src/backend/executor/nodeModifyTable.c
@@ -832,9 +832,11 @@ ExecInsert(ModifyTableState *mtstate,
*
* We loop back here if we find a conflict below, either during
* the pre-check, or when we re-check after inserting the tuple
- * speculatively.
+ * speculatively. Better allow interrupts in case some bug makes
+ * this an infinite loop.
*/
vlock:
+ CHECK_FOR_INTERRUPTS();
specConflict = false;
if (!ExecCheckIndexConstraints(resultRelInfo, slot, estate,
&conflictTid, arbiterIndexes))