From 6f261461c1d0bb7ab4d4e2442cea313008c06f12 Mon Sep 17 00:00:00 2001 From: Tom Lane Date: Sun, 11 May 2003 20:25:50 +0000 Subject: [PATCH] Revert previous change --- turns out the underlying problem affects more cases than I thought, so ExecTypeFromTL() will have to be fixed anyway. --- src/backend/optimizer/plan/createplan.c | 8 +------- src/backend/optimizer/util/plancat.c | 20 +++----------------- 2 files changed, 4 insertions(+), 24 deletions(-) diff --git a/src/backend/optimizer/plan/createplan.c b/src/backend/optimizer/plan/createplan.c index 3445400988..e9dd994cd2 100644 --- a/src/backend/optimizer/plan/createplan.c +++ b/src/backend/optimizer/plan/createplan.c @@ -10,7 +10,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/createplan.c,v 1.140 2003/05/11 15:03:52 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/optimizer/plan/createplan.c,v 1.141 2003/05/11 20:25:50 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -295,12 +295,6 @@ use_physical_tlist(RelOptInfo *rel) */ if (rel->reloptkind != RELOPT_BASEREL) return false; - /* - * Can't do it if relation contains dropped columns. This is detected - * in plancat.c, see notes there. - */ - if (rel->varlist == NIL) - return false; /* * Can't do it if any system columns are requested, either. (This could * possibly be fixed but would take some fragile assumptions in setrefs.c, diff --git a/src/backend/optimizer/util/plancat.c b/src/backend/optimizer/util/plancat.c index 943e5752fa..c0c4775da8 100644 --- a/src/backend/optimizer/util/plancat.c +++ b/src/backend/optimizer/util/plancat.c @@ -9,7 +9,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/optimizer/util/plancat.c,v 1.80 2003/05/11 15:03:52 tgl Exp $ + * $Header: /cvsroot/pgsql/src/backend/optimizer/util/plancat.c,v 1.81 2003/05/11 20:25:50 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -62,15 +62,8 @@ get_relation_info(Oid relationObjectId, RelOptInfo *rel) relation = heap_open(relationObjectId, AccessShareLock); /* - * Make list of physical Vars. But if there are any dropped columns, - * punt and set varlist to NIL. (XXX Ideally we would like to include - * dropped columns so that the varlist models the physical tuples - * of the relation. However this creates problems for ExecTypeFromTL, - * which may be asked to build a tupdesc for a tlist that includes vars - * of no-longer-existent types. In theory we could dig out the required - * info from the pg_attribute entries of the relation, but that data is - * not readily available to ExecTypeFromTL. For now, punt and don't - * apply the physical-tlist optimization when there are dropped cols.) + * Make list of physical Vars. Note we do NOT ignore dropped columns; + * the intent is to model the physical tuples of the relation. */ numattrs = RelationGetNumberOfAttributes(relation); @@ -78,13 +71,6 @@ get_relation_info(Oid relationObjectId, RelOptInfo *rel) { Form_pg_attribute att_tup = relation->rd_att->attrs[attrno - 1]; - if (att_tup->attisdropped) - { - /* found a dropped col, so punt */ - varlist = NIL; - break; - } - varlist = lappend(varlist, makeVar(varno, attrno,