Revert previous change --- turns out the underlying problem affects
authorTom Lane <tgl@sss.pgh.pa.us>
Sun, 11 May 2003 20:25:50 +0000 (20:25 +0000)
committerTom Lane <tgl@sss.pgh.pa.us>
Sun, 11 May 2003 20:25:50 +0000 (20:25 +0000)
more cases than I thought, so ExecTypeFromTL() will have to be fixed
anyway.

src/backend/optimizer/plan/createplan.c
src/backend/optimizer/util/plancat.c

index 3445400988a2cc4a51a06672e86ef04e92ebfe01..e9dd994cd214f2d2ad987d5b2edd459616f8678d 100644 (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,
index 943e5752faa5f320b538bf97cf22484747855d11..c0c4775da8557871adff6cf0aab410bc100f02e3 100644 (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,