Revert previous change --- turns out the underlying problem affects

more cases than I thought, so ExecTypeFromTL() will have to be fixed
anyway.
This commit is contained in:
Tom Lane 2003-05-11 20:25:50 +00:00
parent 8f2e53bc10
commit 6f261461c1
2 changed files with 4 additions and 24 deletions

View File

@ -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,

View File

@ -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,