being a plain List.
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/optimizer/path/allpaths.c,v 1.116 2004/05/30 23:40:28 neilc Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/path/allpaths.c,v 1.117 2004/06/01 03:02:51 tgl Exp $
*
*-------------------------------------------------------------------------
*/
RangeTblEntry *childrte;
Oid childOID;
RelOptInfo *childrel;
- List *reltlist;
ListCell *parentvars;
ListCell *childvars;
* the individual tables. Also, we just zap attr_needed rather
* than trying to adjust it; it won't be looked at in the child.
*/
- reltlist = FastListValue(&rel->reltargetlist);
- reltlist = (List *)
- adjust_inherited_attrs((Node *) reltlist,
+ childrel->reltargetlist = (List *)
+ adjust_inherited_attrs((Node *) rel->reltargetlist,
parentRTindex,
parentOID,
childRTindex,
childOID);
- FastListFromList(&childrel->reltargetlist, reltlist);
childrel->attr_needed = NULL;
childrel->baserestrictinfo = (List *)
adjust_inherited_attrs((Node *) rel->baserestrictinfo,
if (childrel->width > rel->width)
rel->width = childrel->width;
- childvars = list_head(FastListValue(&childrel->reltargetlist));
- foreach(parentvars, FastListValue(&rel->reltargetlist))
+ forboth(parentvars, rel->reltargetlist,
+ childvars, childrel->reltargetlist)
{
Var *parentvar = (Var *) lfirst(parentvars);
Var *childvar = (Var *) lfirst(childvars);
if (childrel->attr_widths[childndx] > rel->attr_widths[parentndx])
rel->attr_widths[parentndx] = childrel->attr_widths[childndx];
- childvars = lnext(childvars);
}
}
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/optimizer/path/costsize.c,v 1.128 2004/05/30 23:40:28 neilc Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/path/costsize.c,v 1.129 2004/06/01 03:02:52 tgl Exp $
*
*-------------------------------------------------------------------------
*/
int32 tuple_width = 0;
ListCell *tllist;
- foreach(tllist, FastListValue(&rel->reltargetlist))
+ foreach(tllist, rel->reltargetlist)
{
Var *var = (Var *) lfirst(tllist);
int ndx = var->varattno - rel->min_attr;
* Portions Copyright (c) 1994, Regents of the University of California
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/optimizer/path/pathkeys.c,v 1.58 2004/05/30 23:40:28 neilc Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/path/pathkeys.c,v 1.59 2004/06/01 03:02:52 tgl Exp $
*
*-------------------------------------------------------------------------
*/
vartypeid;
int32 type_mod;
- foreach(temp, FastListValue(&rel->reltargetlist))
+ foreach(temp, rel->reltargetlist)
{
Var *var = (Var *) lfirst(temp);
- if (IsA(var, Var) &&
- var->varattno == varattno)
+ if (var->varattno == varattno)
return var;
}
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/optimizer/plan/createplan.c,v 1.171 2004/05/30 23:40:28 neilc Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/plan/createplan.c,v 1.172 2004/06/01 03:02:57 tgl Exp $
*
*-------------------------------------------------------------------------
*/
static List *
build_relation_tlist(RelOptInfo *rel)
{
- FastList tlist;
+ List *tlist = NIL;
int resdomno = 1;
ListCell *v;
- FastListInit(&tlist);
- foreach(v, FastListValue(&rel->reltargetlist))
+ foreach(v, rel->reltargetlist)
{
/* Do we really need to copy here? Not sure */
Var *var = (Var *) copyObject(lfirst(v));
- FastAppend(&tlist, create_tl_element(var, resdomno));
+ tlist = lappend(tlist, create_tl_element(var, resdomno));
resdomno++;
}
- return FastListValue(&tlist);
+ return tlist;
}
/*
List *indxstrategy;
List *indxsubtype;
List *indxlossy;
- FastList indexids;
+ List *indexids;
ListCell *l;
IndexScan *scan_plan;
scan_clauses = order_qual_clauses(root, scan_clauses);
/* Build list of index OIDs */
- FastListInit(&indexids);
+ indexids = NIL;
foreach(l, best_path->indexinfo)
{
IndexOptInfo *index = (IndexOptInfo *) lfirst(l);
- FastAppendo(&indexids, index->indexoid);
+ indexids = lappend_oid(indexids, index->indexoid);
}
/*
scan_plan = make_indexscan(tlist,
qpqual,
baserelid,
- FastListValue(&indexids),
+ indexids,
fixed_indxquals,
stripped_indxquals,
indxstrategy,
static List *
order_qual_clauses(Query *root, List *clauses)
{
- FastList nosubplans;
- FastList withsubplans;
+ List *nosubplans;
+ List *withsubplans;
ListCell *l;
/* No need to work hard if the query is subselect-free */
if (!root->hasSubLinks)
return clauses;
- FastListInit(&nosubplans);
- FastListInit(&withsubplans);
+ nosubplans = NIL;
+ withsubplans = NIL;
foreach(l, clauses)
{
Node *clause = (Node *) lfirst(l);
if (contain_subplans(clause))
- FastAppend(&withsubplans, clause);
+ withsubplans = lappend(withsubplans, clause);
else
- FastAppend(&nosubplans, clause);
+ nosubplans = lappend(nosubplans, clause);
}
- FastConcFast(&nosubplans, &withsubplans);
- return FastListValue(&nosubplans);
+ return list_concat(nosubplans, withsubplans);
}
/*
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/optimizer/plan/initsplan.c,v 1.100 2004/05/30 23:40:29 neilc Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/plan/initsplan.c,v 1.101 2004/06/01 03:02:58 tgl Exp $
*
*-------------------------------------------------------------------------
*/
{
/* Variable not yet requested, so add to reltargetlist */
/* XXX is copyObject necessary here? */
- FastAppend(&rel->reltargetlist, copyObject(var));
+ rel->reltargetlist = lappend(rel->reltargetlist, copyObject(var));
}
rel->attr_needed[attrno] = bms_add_members(rel->attr_needed[attrno],
where_needed);
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/optimizer/util/pathnode.c,v 1.106 2004/05/30 23:40:31 neilc Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/util/pathnode.c,v 1.107 2004/06/01 03:03:02 tgl Exp $
*
*-------------------------------------------------------------------------
*/
else
{
pathnode->rows = rel->rows;
- numCols = list_length(FastListValue(&rel->reltargetlist));
+ numCols = list_length(rel->reltargetlist);
}
/*
*
*
* IDENTIFICATION
- * $PostgreSQL: pgsql/src/backend/optimizer/util/relnode.c,v 1.58 2004/05/30 23:40:31 neilc Exp $
+ * $PostgreSQL: pgsql/src/backend/optimizer/util/relnode.c,v 1.59 2004/06/01 03:03:02 tgl Exp $
*
*-------------------------------------------------------------------------
*/
rel->relids = bms_make_singleton(relid);
rel->rows = 0;
rel->width = 0;
- FastListInit(&rel->reltargetlist);
+ rel->reltargetlist = NIL;
rel->pathlist = NIL;
rel->cheapest_startup_path = NULL;
rel->cheapest_total_path = NULL;
joinrel->relids = bms_copy(joinrelids);
joinrel->rows = 0;
joinrel->width = 0;
- FastListInit(&joinrel->reltargetlist);
+ joinrel->reltargetlist = NIL;
joinrel->pathlist = NIL;
joinrel->cheapest_startup_path = NULL;
joinrel->cheapest_total_path = NULL;
Relids relids = joinrel->relids;
ListCell *rels;
- FastListInit(&joinrel->reltargetlist);
+ joinrel->reltargetlist = NIL;
joinrel->width = 0;
foreach(rels, root->base_rel_list)
if (!bms_is_member(baserel->relid, relids))
continue;
- foreach(vars, FastListValue(&baserel->reltargetlist))
+ foreach(vars, baserel->reltargetlist)
{
Var *var = (Var *) lfirst(vars);
int ndx = var->varattno - baserel->min_attr;
if (bms_nonempty_difference(baserel->attr_needed[ndx], relids))
{
- FastAppend(&joinrel->reltargetlist, var);
+ joinrel->reltargetlist = lappend(joinrel->reltargetlist, var);
Assert(baserel->attr_widths[ndx] > 0);
joinrel->width += baserel->attr_widths[ndx];
}
* Portions Copyright (c) 1996-2003, PostgreSQL Global Development Group
* Portions Copyright (c) 1994, Regents of the University of California
*
- * $PostgreSQL: pgsql/src/include/nodes/relation.h,v 1.94 2004/04/25 18:23:57 neilc Exp $
+ * $PostgreSQL: pgsql/src/include/nodes/relation.h,v 1.95 2004/06/01 03:03:05 tgl Exp $
*
*-------------------------------------------------------------------------
*/
int width; /* estimated avg width of result tuples */
/* materialization information */
- FastList reltargetlist;
+ List *reltargetlist; /* needed Vars */
List *pathlist; /* Path structures */
struct Path *cheapest_startup_path;
struct Path *cheapest_total_path;