summaryrefslogtreecommitdiff
path: root/src/backend/optimizer/util/tlist.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/backend/optimizer/util/tlist.c')
-rw-r--r--src/backend/optimizer/util/tlist.c44
1 files changed, 25 insertions, 19 deletions
diff --git a/src/backend/optimizer/util/tlist.c b/src/backend/optimizer/util/tlist.c
index e0620c26a3..497bb78b3b 100644
--- a/src/backend/optimizer/util/tlist.c
+++ b/src/backend/optimizer/util/tlist.c
@@ -7,7 +7,7 @@
*
*
* IDENTIFICATION
- * $Header: /cvsroot/pgsql/src/backend/optimizer/util/tlist.c,v 1.31 1999/05/17 17:03:23 momjian Exp $
+ * $Header: /cvsroot/pgsql/src/backend/optimizer/util/tlist.c,v 1.32 1999/05/25 16:10:03 momjian Exp $
*
*-------------------------------------------------------------------------
*/
@@ -93,7 +93,7 @@ matching_tlist_var(Var *var, List *targetlist)
* CREATES: new var_node iff no matching var_node exists in targetlist
*/
void
-add_var_to_tlist(RelOptInfo *rel, Var *var)
+add_var_to_tlist(RelOptInfo * rel, Var *var)
{
Expr *oldvar;
@@ -114,8 +114,8 @@ add_var_to_tlist(RelOptInfo *rel, Var *var)
var->varoattno);
rel->targetlist = lappend(tlist,
- create_tl_element(newvar,
- length(tlist) + 1));
+ create_tl_element(newvar,
+ length(tlist) + 1));
}
}
@@ -203,6 +203,7 @@ tlist_member(Var *var, List *tlist)
foreach(i, tlist)
{
TargetEntry *tle = (TargetEntry *) lfirst(i);
+
if (var_equal(var, get_expr(tle)))
return tle->resdom;
}
@@ -222,6 +223,7 @@ tlist_resdom(List *tlist, Resdom *resnode)
{
TargetEntry *tle = (TargetEntry *) lfirst(i);
Resdom *resdom = tle->resdom;
+
/* Since resnos are supposed to be unique */
if (resnode->resno == resdom->resno)
return resdom;
@@ -362,7 +364,7 @@ flatten_tlist(List *tlist)
TargetEntry *temp_entry = (TargetEntry *) lfirst(temp);
tlist_vars = nconc(tlist_vars,
- pull_var_clause((Node *) get_expr(temp_entry)));
+ pull_var_clause((Node *) get_expr(temp_entry)));
}
foreach(temp, tlist_vars)
@@ -411,8 +413,8 @@ flatten_tlist_vars(List *full_tlist, List *flat_tlist)
TargetEntry *tle = lfirst(x);
result = lappend(result, makeTargetEntry(tle->resdom,
- flatten_tlistentry((Node *) get_expr(tle),
- flat_tlist)));
+ flatten_tlistentry((Node *) get_expr(tle),
+ flat_tlist)));
}
return result;
@@ -456,10 +458,11 @@ flatten_tlistentry(Node *tlistentry, List *flat_tlist)
}
else if (IsA(tlistentry, Expr))
{
+
/*
- * Recursively scan the arguments of an expression.
- * NOTE: this must come after is_subplan() case since
- * subplan is a kind of Expr node.
+ * Recursively scan the arguments of an expression. NOTE: this
+ * must come after is_subplan() case since subplan is a kind of
+ * Expr node.
*/
foreach(temp, ((Expr *) tlistentry)->args)
lfirst(temp) = flatten_tlistentry(lfirst(temp), flat_tlist);
@@ -467,8 +470,10 @@ flatten_tlistentry(Node *tlistentry, List *flat_tlist)
}
else if (IsA(tlistentry, Aggref))
{
- /* XXX shouldn't this be recursing into the agg's target?
- * Seems to work though, so will leave it alone ... tgl 5/99
+
+ /*
+ * XXX shouldn't this be recursing into the agg's target? Seems to
+ * work though, so will leave it alone ... tgl 5/99
*/
return tlistentry;
}
@@ -481,7 +486,7 @@ flatten_tlistentry(Node *tlistentry, List *flat_tlist)
foreach(temp, aref->reflowerindexpr)
lfirst(temp) = flatten_tlistentry(lfirst(temp), flat_tlist);
aref->refexpr = flatten_tlistentry(aref->refexpr, flat_tlist);
- aref->refassgnexpr = flatten_tlistentry(aref->refassgnexpr,flat_tlist);
+ aref->refassgnexpr = flatten_tlistentry(aref->refassgnexpr, flat_tlist);
return tlistentry;
}
@@ -491,7 +496,8 @@ flatten_tlistentry(Node *tlistentry, List *flat_tlist)
foreach(temp, cexpr->args)
{
- CaseWhen *cwhen = (CaseWhen *) lfirst(temp);
+ CaseWhen *cwhen = (CaseWhen *) lfirst(temp);
+
cwhen->expr = flatten_tlistentry(cwhen->expr, flat_tlist);
cwhen->result = flatten_tlistentry(cwhen->result, flat_tlist);
}
@@ -521,18 +527,18 @@ get_expr(TargetEntry *tle)
Var *
get_groupclause_expr(GroupClause *groupClause, List *targetList)
{
- List *l;
- TargetEntry *tle;
+ List *l;
+ TargetEntry *tle;
foreach(l, targetList)
{
- tle = (TargetEntry *)lfirst(l);
+ tle = (TargetEntry *) lfirst(l);
if (tle->resdom->resgroupref == groupClause->tleGroupref)
return get_expr(tle);
}
- elog(ERROR,
- "get_groupclause_expr: GROUP BY expression not found in targetlist");
+ elog(ERROR,
+ "get_groupclause_expr: GROUP BY expression not found in targetlist");
return NULL;
}