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)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy