Location via proxy:   [ UP ]  
[Report a bug]   [Manage cookies]                
Skip to content

Commit 2ae51c8

Browse files
committed
Minor cleanups and code beautification; eliminate some
routines that are now dead code.
1 parent 4a1c5cb commit 2ae51c8

File tree

5 files changed

+118
-225
lines changed

5 files changed

+118
-225
lines changed

src/backend/optimizer/plan/initsplan.c

Lines changed: 56 additions & 76 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/optimizer/plan/initsplan.c,v 1.35 1999/07/24 23:21:12 tgl Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/optimizer/plan/initsplan.c,v 1.36 1999/08/10 03:00:14 tgl Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -51,28 +51,29 @@ static Oid hashjoinop(Expr *clause);
5151
void
5252
make_var_only_tlist(Query *root, List *tlist)
5353
{
54-
List *tlist_vars = NIL;
55-
List *l = NIL;
56-
List *tvar = NIL;
54+
List *tlist_vars = pull_var_clause((Node *) tlist);
5755

58-
foreach(l, tlist)
59-
{
60-
TargetEntry *entry = (TargetEntry *) lfirst(l);
56+
add_vars_to_targetlist(root, tlist_vars);
57+
freeList(tlist_vars);
58+
}
6159

62-
tlist_vars = nconc(tlist_vars, pull_var_clause(entry->expr));
63-
}
60+
/*
61+
* add_vars_to_targetlist
62+
* For each variable appearing in the list, add it to the relation's
63+
* targetlist if not already present. Rel nodes will also be created
64+
* if not already present.
65+
*/
66+
static void
67+
add_vars_to_targetlist(Query *root, List *vars)
68+
{
69+
List *temp;
6470

65-
/* now, the target list only contains Var nodes */
66-
foreach(tvar, tlist_vars)
71+
foreach(temp, vars)
6772
{
68-
Var *var = (Var *) lfirst(tvar);
69-
Index varno;
70-
RelOptInfo *result;
71-
72-
varno = var->varno;
73-
result = get_base_rel(root, varno);
73+
Var *var = (Var *) lfirst(temp);
74+
RelOptInfo *rel = get_base_rel(root, var->varno);
7475

75-
add_var_to_tlist(result, var);
76+
add_var_to_tlist(rel, var);
7677
}
7778
}
7879

@@ -87,31 +88,30 @@ make_var_only_tlist(Query *root, List *tlist)
8788
void
8889
add_missing_vars_to_tlist(Query *root, List *tlist)
8990
{
91+
int varno = 1;
9092
List *l;
91-
int varno;
9293

93-
varno = 1;
9494
foreach(l, root->rtable)
9595
{
9696
RangeTblEntry *rte = (RangeTblEntry *) lfirst(l);
9797
Relids relids;
98-
RelOptInfo *result;
99-
Var *var;
10098

10199
relids = lconsi(varno, NIL);
102100
if (rte->inFromCl && !rel_member(relids, root->base_rel_list))
103101
{
102+
RelOptInfo *rel;
103+
Var *var;
104+
105+
/* add it to base_rel_list */
106+
rel = get_base_rel(root, varno);
107+
/* give it a dummy tlist entry for its OID */
104108
var = makeVar(varno, ObjectIdAttributeNumber,
105109
OIDOID, -1, 0, varno, ObjectIdAttributeNumber);
106-
/* add it to base_rel_list */
107-
result = get_base_rel(root, varno);
108-
add_var_to_tlist(result, var);
110+
add_var_to_tlist(rel, var);
109111
}
110112
pfree(relids);
111113
varno++;
112114
}
113-
114-
return;
115115
}
116116

117117
/*****************************************************************************
@@ -239,26 +239,6 @@ add_join_info_to_rels(Query *root, RestrictInfo *restrictinfo,
239239
}
240240
}
241241

242-
/*
243-
* add_vars_to_targetlist
244-
* For each variable appearing in a clause, add it to the relation's
245-
* targetlist if not already present.
246-
*/
247-
static void
248-
add_vars_to_targetlist(Query *root, List *vars)
249-
{
250-
List *temp;
251-
252-
foreach(temp, vars)
253-
{
254-
Var *var = (Var *) lfirst(temp);
255-
RelOptInfo *rel = get_base_rel(root, var->varno);
256-
257-
if (tlistentry_member(var, rel->targetlist) == NULL)
258-
add_var_to_tlist(rel, var);
259-
}
260-
}
261-
262242
/*****************************************************************************
263243
*
264244
* JOININFO
@@ -269,51 +249,51 @@ add_vars_to_targetlist(Query *root, List *vars)
269249
* set_joininfo_mergeable_hashable
270250
* Set the MergeJoinable or HashJoinable field for every joininfo node
271251
* (within a rel node) and the mergejoinorder or hashjoinop field for
272-
* each restrictinfo node(within a joininfo node) for all relations in a
252+
* each restrictinfo node (within a joininfo node) for all relations in a
273253
* query.
274254
*
275255
* Returns nothing.
276256
*/
277257
void
278258
set_joininfo_mergeable_hashable(List *rel_list)
279259
{
280-
List *x,
281-
*y,
282-
*z;
283-
RelOptInfo *rel;
284-
JoinInfo *joininfo;
285-
RestrictInfo *restrictinfo;
286-
Expr *clause;
260+
List *x;
287261

288262
foreach(x, rel_list)
289263
{
290-
rel = (RelOptInfo *) lfirst(x);
264+
RelOptInfo *rel = (RelOptInfo *) lfirst(x);
265+
List *y;
266+
291267
foreach(y, rel->joininfo)
292268
{
293-
joininfo = (JoinInfo *) lfirst(y);
269+
JoinInfo *joininfo = (JoinInfo *) lfirst(y);
270+
List *z;
271+
294272
foreach(z, joininfo->jinfo_restrictinfo)
295273
{
296-
restrictinfo = (RestrictInfo *) lfirst(z);
297-
clause = restrictinfo->clause;
274+
RestrictInfo *restrictinfo = (RestrictInfo *) lfirst(z);
275+
Expr *clause = restrictinfo->clause;
276+
298277
if (is_joinable((Node *) clause))
299278
{
300-
MergeOrder *sortop = (MergeOrder *) NULL;
301-
Oid hashop = (Oid) NULL;
302-
303279
if (_enable_mergejoin_)
304-
sortop = mergejoinop(clause);
305-
if (sortop)
306280
{
307-
restrictinfo->mergejoinorder = sortop;
308-
joininfo->mergejoinable = true;
281+
MergeOrder *sortop = mergejoinop(clause);
282+
if (sortop)
283+
{
284+
restrictinfo->mergejoinorder = sortop;
285+
joininfo->mergejoinable = true;
286+
}
309287
}
310288

311289
if (_enable_hashjoin_)
312-
hashop = hashjoinop(clause);
313-
if (hashop)
314290
{
315-
restrictinfo->hashjoinoperator = hashop;
316-
joininfo->hashjoinable = true;
291+
Oid hashop = hashjoinop(clause);
292+
if (hashop)
293+
{
294+
restrictinfo->hashjoinoperator = hashop;
295+
joininfo->hashjoinable = true;
296+
}
317297
}
318298
}
319299
}
@@ -323,8 +303,8 @@ set_joininfo_mergeable_hashable(List *rel_list)
323303

324304
/*
325305
* mergejoinop
326-
* Returns the mergejoin operator of an operator iff 'clause' is
327-
* mergejoinable, i.e., both operands are single vars and the operator is
306+
* Returns a MergeOrder node for 'clause' iff 'clause' is mergejoinable,
307+
* i.e., both operands are single vars and the operator is
328308
* a mergejoinable operator.
329309
*/
330310
static MergeOrder *
@@ -346,7 +326,7 @@ mergejoinop(Expr *clause)
346326
/* caution: is_opclause accepts more than I do, so check it */
347327
if (!right)
348328
return NULL; /* unary opclauses need not apply */
349-
if (!IsA(left, Var) ||!IsA(right, Var))
329+
if (!IsA(left, Var) || !IsA(right, Var))
350330
return NULL;
351331

352332
opno = ((Oper *) clause->oper)->opno;
@@ -374,8 +354,8 @@ mergejoinop(Expr *clause)
374354

375355
/*
376356
* hashjoinop
377-
* Returns the hashjoin operator of an operator iff 'clause' is
378-
* hashjoinable, i.e., both operands are single vars and the operator is
357+
* Returns the hashjoin operator iff 'clause' is hashjoinable,
358+
* i.e., both operands are single vars and the operator is
379359
* a hashjoinable operator.
380360
*/
381361
static Oid
@@ -393,7 +373,7 @@ hashjoinop(Expr *clause)
393373
/* caution: is_opclause accepts more than I do, so check it */
394374
if (!right)
395375
return InvalidOid; /* unary opclauses need not apply */
396-
if (!IsA(left, Var) ||!IsA(right, Var))
376+
if (!IsA(left, Var) || !IsA(right, Var))
397377
return InvalidOid;
398378

399379
return op_hashjoinable(((Oper *) clause->oper)->opno,

0 commit comments

Comments
 (0)