Movatterモバイル変換


[0]ホーム

URL:


Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Sign up
Appearance settings

Commit2ae51c8

Browse files
committed
Minor cleanups and code beautification; eliminate some
routines that are now dead code.
1 parent4a1c5cb commit2ae51c8

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 Oidhashjoinop(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+
staticvoid
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-
Indexvarno;
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+
intvarno=1;
9092
List*l;
91-
intvarno;
9293

93-
varno=1;
9494
foreach(l,root->rtable)
9595
{
9696
RangeTblEntry*rte= (RangeTblEntry*)lfirst(l);
9797
Relidsrelids;
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-
staticvoid
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-
Oidhashop= (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+
Oidhashop=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-
* Returnsthe mergejoin operator of an operatoriff 'clause' is
327-
*mergejoinable,i.e., both operands are single vars and the operator is
306+
* Returnsa 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
staticMergeOrder*
@@ -346,7 +326,7 @@ mergejoinop(Expr *clause)
346326
/* caution: is_opclause accepts more than I do, so check it */
347327
if (!right)
348328
returnNULL;/* unary opclauses need not apply */
349-
if (!IsA(left,Var)||!IsA(right,Var))
329+
if (!IsA(left,Var)||!IsA(right,Var))
350330
returnNULL;
351331

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

375355
/*
376356
* hashjoinop
377-
* Returns the hashjoin operatorof an operatoriff '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
staticOid
@@ -393,7 +373,7 @@ hashjoinop(Expr *clause)
393373
/* caution: is_opclause accepts more than I do, so check it */
394374
if (!right)
395375
returnInvalidOid;/* unary opclauses need not apply */
396-
if (!IsA(left,Var)||!IsA(right,Var))
376+
if (!IsA(left,Var)||!IsA(right,Var))
397377
returnInvalidOid;
398378

399379
returnop_hashjoinable(((Oper*)clause->oper)->opno,

0 commit comments

Comments
 (0)

[8]ページ先頭

©2009-2025 Movatter.jp