From: Tom Lane Date: Sun, 25 Feb 2007 17:44:01 +0000 (+0000) Subject: Put back copyObject() call I removed in a fit of brain fade. This one X-Git-Tag: REL8_3_BETA1~1106 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=4756ff3dca903dfc525d1c27fd00fad8ca328188;p=postgresql Put back copyObject() call I removed in a fit of brain fade. This one is still needed despite cleanups in setrefs.c, because the point is to let the inserted Result node compute a different tlist than its input node does. Per example from Jeremy Drake. --- diff --git a/src/backend/optimizer/plan/createplan.c b/src/backend/optimizer/plan/createplan.c index dbfa2c4e58..6c4bde1421 100644 --- a/src/backend/optimizer/plan/createplan.c +++ b/src/backend/optimizer/plan/createplan.c @@ -10,7 +10,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/optimizer/plan/createplan.c,v 1.226 2007/02/22 22:00:24 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/optimizer/plan/createplan.c,v 1.227 2007/02/25 17:44:01 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -2740,7 +2740,11 @@ make_sort_from_pathkeys(PlannerInfo *root, Plan *lefttree, List *pathkeys) * Do we need to insert a Result node? */ if (!is_projection_capable_plan(lefttree)) + { + /* copy needed so we don't modify input's tlist below */ + tlist = copyObject(tlist); lefttree = (Plan *) make_result(root, tlist, NULL, lefttree); + } /* * Add resjunk entry to input's tlist