From 038bad56be0ed38734490f8853eefdb0e71ad75f Mon Sep 17 00:00:00 2001 From: Henson Choi Date: Wed, 25 Mar 2026 00:20:05 +0900 Subject: [PATCH 4/8] Fix in-place modification of defineClause TargetEntry in setrefs.c --- src/backend/optimizer/plan/setrefs.c | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/src/backend/optimizer/plan/setrefs.c b/src/backend/optimizer/plan/setrefs.c index 69cd1861e9b..813a326bd78 100644 --- a/src/backend/optimizer/plan/setrefs.c +++ b/src/backend/optimizer/plan/setrefs.c @@ -2633,7 +2633,7 @@ set_upper_references(PlannerInfo *root, Plan *plan, int rtoffset) NUM_EXEC_QUAL(plan)); /* - * Modifies an expression tree in each DEFINE clause so that all Var + * Replace an expression tree in each DEFINE clause so that all Var * nodes's varno refers to OUTER_VAR. */ if (IsA(plan, WindowAgg)) @@ -2646,6 +2646,7 @@ set_upper_references(PlannerInfo *root, Plan *plan, int rtoffset) { TargetEntry *tle = (TargetEntry *) lfirst(l); + tle = flatCopyTargetEntry(tle); tle->expr = (Expr *) fix_upper_expr(root, (Node *) tle->expr, @@ -2654,6 +2655,7 @@ set_upper_references(PlannerInfo *root, Plan *plan, int rtoffset) rtoffset, NRM_EQUAL, NUM_EXEC_QUAL(plan)); + lfirst(l) = tle; } } } -- 2.50.1 (Apple Git-155)