From: Tom Lane Date: Fri, 6 Apr 2007 22:57:20 +0000 (+0000) Subject: Don't remove the 'alias' field from flattened rangetable entries; X-Git-Tag: REL8_3_BETA1~870 X-Git-Url: http://git.postgresql.org/gitweb/?a=commitdiff_plain;h=b396df84851b3573cd4cb49e162cf11ed6ad4333;p=postgresql.git Don't remove the 'alias' field from flattened rangetable entries; there are some corner cases where this is needed by ruleutils.c for proper display of variables during EXPLAIN. --- diff --git a/src/backend/optimizer/plan/setrefs.c b/src/backend/optimizer/plan/setrefs.c index 5c11d788e00..0739142403e 100644 --- a/src/backend/optimizer/plan/setrefs.c +++ b/src/backend/optimizer/plan/setrefs.c @@ -9,7 +9,7 @@ * * * IDENTIFICATION - * $PostgreSQL: pgsql/src/backend/optimizer/plan/setrefs.c,v 1.133 2007/02/23 21:59:44 tgl Exp $ + * $PostgreSQL: pgsql/src/backend/optimizer/plan/setrefs.c,v 1.134 2007/04/06 22:57:20 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -156,7 +156,8 @@ set_plan_references(PlannerGlobal *glob, Plan *plan, List *rtable) /* * In the flat rangetable, we zero out substructure pointers that are * not needed by the executor; this reduces the storage space and - * copying cost for cached plans. + * copying cost for cached plans. We keep only the alias and eref + * Alias fields, which are needed by EXPLAIN. */ foreach(lc, rtable) { @@ -167,14 +168,13 @@ set_plan_references(PlannerGlobal *glob, Plan *plan, List *rtable) newrte = (RangeTblEntry *) palloc(sizeof(RangeTblEntry)); memcpy(newrte, rte, sizeof(RangeTblEntry)); - /* zap unneeded sub-structure (we keep only the eref Alias) */ + /* zap unneeded sub-structure */ newrte->subquery = NULL; newrte->funcexpr = NULL; newrte->funccoltypes = NIL; newrte->funccoltypmods = NIL; newrte->values_lists = NIL; newrte->joinaliasvars = NIL; - newrte->alias = NULL; glob->finalrtable = lappend(glob->finalrtable, newrte); }