=== Applying patches on top of PostgreSQL commit ID f884f359f5acb29bd423001b4878b85f51406b42 === /etc/rc.d/jail: WARNING: Per-jail configuration via jail_* variables is obsolete. Please consider migrating to /etc/jail.conf. Thu Oct 8 21:40:28 UTC 2026 On branch cf/7397 nothing to commit, working tree clean === using 'git am' to apply patch ./v1-0001-plpgsql-fix-SELECT-INTO-when-the-expression-is-no.patch === Applying: plpgsql: fix SELECT INTO when the expression is no longer simple Using index info to reconstruct a base tree... M src/pl/plpgsql/src/pl_exec.c Falling back to patching base and 3-way merge... Auto-merging src/pl/plpgsql/src/pl_exec.c CONFLICT (content): Merge conflict in src/pl/plpgsql/src/pl_exec.c error: Failed to merge in the changes. hint: Use 'git am --show-current-patch=diff' to see the failed patch Patch failed at 0001 plpgsql: fix SELECT INTO when the expression is no longer simple When you have resolved this problem, run "git am --continue". If you prefer to skip this patch, run "git am --skip" instead. To restore the original branch and stop patching, run "git am --abort". === using patch(1) to apply patch ./v1-0001-plpgsql-fix-SELECT-INTO-when-the-expression-is-no.patch === patching file src/pl/plpgsql/src/pl_exec.c Hunk #1 succeeded at 7365 with fuzz 2 (offset 3053 lines). Hunk #2 FAILED at 4328. Hunk #3 FAILED at 4338. 2 out of 3 hunks FAILED -- saving rejects to file src/pl/plpgsql/src/pl_exec.c.rej Unstaged changes after reset: M src/pl/plpgsql/src/pl_exec.c Removing src/pl/plpgsql/src/pl_exec.c.rej === using 'git apply' to apply patch ./v1-0001-plpgsql-fix-SELECT-INTO-when-the-expression-is-no.patch === Applied patch to 'src/pl/plpgsql/src/pl_exec.c' with conflicts. U src/pl/plpgsql/src/pl_exec.c diff --cc src/pl/plpgsql/src/pl_exec.c index bc1667f7a13,c641c25d98d..00000000000 --- a/src/pl/plpgsql/src/pl_exec.c +++ b/src/pl/plpgsql/src/pl_exec.c @@@ -4325,14 -4324,16 +4325,27 @@@ exec_stmt_execsql(PLpgSQL_execstate *es plerrcontext.previous = error_context_stack; error_context_stack = &plerrcontext; ++<<<<<<< ours + /* + * Evaluate the already-planned expression. This fails if the + * expression is busy, or if replanning occurs and we find it + * is no longer simple. In such cases, fall through to the + * SPI code below. + */ + simple = exec_eval_simple_expr(estate, expr, + &value, &isnull, ++======= + /* If first time through, create a plan for this expression */ + if (expr->plan == NULL) + exec_prepare_plan(estate, expr, 0); + + /* + * And evaluate the expression. This fails if the expression + * is busy, or if replanning found it is no longer simple. In + * that case fall through to the SPI code below. + */ + simple = exec_eval_simple_expr(estate, expr, &value, &isnull, ++>>>>>>> theirs &valtype, &valtypmod); /* @@@ -4343,7 -4344,7 +4356,11 @@@ if (simple) { ++<<<<<<< ours + /* Success; assign the result to the INTO target */ ++======= + /* Assign the result to the INTO target */ ++>>>>>>> theirs exec_assign_value(estate, estate->datums[row->varnos[0]], value, isnull, valtype, valtypmod); exec_eval_cleanup(estate);