ExecInitMerge_fix.patch

application/octet-stream

Filename: ExecInitMerge_fix.patch
Type: application/octet-stream
Part: 0
Message: Re: BUG #18830: ExecInitMerge Segfault on MERGE

Patch

Format: unified
File+
src/backend/executor/nodeModifyTable.c 3 2
diff --git a/src/backend/executor/nodeModifyTable.c b/src/backend/executor/nodeModifyTable.c
index b0fe50075ad..c519f366a8f 100644
--- a/src/backend/executor/nodeModifyTable.c
+++ b/src/backend/executor/nodeModifyTable.c
@@ -3651,13 +3651,14 @@ ExecInitMerge(ModifyTableState *mtstate, EState *estate)
 	ListCell   *lc;
 	int			i;
 
+	if (mtstate->ps.ps_ExprContext == NULL)
+		ExecAssignExprContext(estate, &mtstate->ps);
+
 	if (mergeActionLists == NIL)
 		return;
 
 	mtstate->mt_merge_subcommands = 0;
 
-	if (mtstate->ps.ps_ExprContext == NULL)
-		ExecAssignExprContext(estate, &mtstate->ps);
 	econtext = mtstate->ps.ps_ExprContext;
 
 	/*