aboutsummaryrefslogtreecommitdiff
path: root/src/backend/parser/analyze.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/parser/analyze.c')
-rw-r--r--src/backend/parser/analyze.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/src/backend/parser/analyze.c b/src/backend/parser/analyze.c
index fc463faa6be..a0dfbf900a9 100644
--- a/src/backend/parser/analyze.c
+++ b/src/backend/parser/analyze.c
@@ -891,6 +891,12 @@ transformOnConflictClause(ParseState *pstate,
/* Process DO UPDATE */
if (onConflictClause->action == ONCONFLICT_UPDATE)
{
+ /*
+ * All INSERT expressions have been parsed, get ready for potentially
+ * existing SET statements that need to be processed like an UPDATE.
+ */
+ pstate->p_is_insert = false;
+
exclRte = addRangeTableEntryForRelation(pstate,
pstate->p_target_relation,
makeAlias("excluded", NIL),
@@ -1999,7 +2005,7 @@ transformUpdateStmt(ParseState *pstate, UpdateStmt *stmt)
Node *qual;
qry->commandType = CMD_UPDATE;
- pstate->p_is_update = true;
+ pstate->p_is_insert = false;
/* process the WITH clause independently of all else */
if (stmt->withClause)