Skip to content

Commit 1ed5cbb

Browse files
committed
Final optimizer cleanups.
1 parent 47dd11b commit 1ed5cbb

File tree

16 files changed

+174
-163
lines changed

16 files changed

+174
-163
lines changed

src/backend/nodes/list.c

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/nodes/list.c,v 1.17 1999/02/13 23:15:57 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/nodes/list.c,v 1.18 1999/02/22 05:26:18 momjian Exp $
1111
*
1212
* NOTES
1313
* XXX a few of the following functions are duplicated to handle
@@ -109,6 +109,7 @@ nconc(List *l1, List *l2)
109109
}
110110

111111

112+
#ifdef NOT_USED
112113
List *
113114
nreverse(List *list)
114115
{
@@ -128,6 +129,7 @@ nreverse(List *list)
128129
lnext(list) = lnext(rlist);
129130
return list;
130131
}
132+
#endif
131133

132134
Value *
133135
makeInteger(long i)
@@ -245,6 +247,7 @@ append(List *l1, List *l2)
245247
return newlist;
246248
}
247249

250+
#ifdef NOT_USED
248251
/*
249252
* below are for backwards compatibility
250253
*/
@@ -266,6 +269,7 @@ intAppend(List *l1, List *l2)
266269
lnext(p) = newlist2;
267270
return newlist;
268271
}
272+
#endif
269273

270274
/*
271275
* same

src/backend/optimizer/path/allpaths.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/optimizer/path/allpaths.c,v 1.43 1999/02/21 03:48:41 scrappy Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/optimizer/path/allpaths.c,v 1.44 1999/02/22 05:26:18 momjian Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -126,7 +126,7 @@ set_base_rel_pathlist(Query *root, List *rels)
126126

127127
rel->pathlist = add_pathlist(rel,
128128
sequential_scan_list,
129-
append(rel_index_scan_list,
129+
nconc(rel_index_scan_list,
130130
or_index_scan_list));
131131

132132
set_cheapest(rel, rel->pathlist);

src/backend/optimizer/path/hashutils.c

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/hashutils.c,v 1.13 1999/02/13 23:16:16 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/hashutils.c,v 1.14 1999/02/22 05:26:18 momjian Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -83,9 +83,7 @@ group_clauses_by_hashop(List *restrictinfo_list,
8383
xhashinfo->jmethod.jmkeys = NIL;
8484
xhashinfo->jmethod.clauses = NIL;
8585

86-
/* XXX was push */
87-
hashinfo_list = lappend(hashinfo_list, xhashinfo);
88-
hashinfo_list = nreverse(hashinfo_list);
86+
hashinfo_list = lcons(xhashinfo, hashinfo_list);
8987
}
9088

9189
xhashinfo->jmethod.clauses = lcons(clause, xhashinfo->jmethod.clauses);

src/backend/optimizer/path/indxpath.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@
88
*
99
*
1010
* IDENTIFICATION
11-
* $Header: /cvsroot/pgsql/src/backend/optimizer/path/indxpath.c,v 1.52 1999/02/21 03:48:44 scrappy Exp $
11+
* $Header: /cvsroot/pgsql/src/backend/optimizer/path/indxpath.c,v 1.53 1999/02/22 05:26:19 momjian Exp $
1212
*
1313
*-------------------------------------------------------------------------
1414
*/
@@ -1384,7 +1384,7 @@ create_index_path_group(Query *root,
13841384
static List *
13851385
add_index_paths(List *indexpaths, List *new_indexpaths)
13861386
{
1387-
return append(indexpaths, new_indexpaths);
1387+
return nconc(indexpaths, new_indexpaths);
13881388
}
13891389

13901390
static bool

src/backend/optimizer/path/joinpath.c

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinpath.c,v 1.31 1999/02/21 01:55:02 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinpath.c,v 1.32 1999/02/22 05:26:20 momjian Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -104,7 +104,8 @@ update_rels_pathlist_for_joins(Query *root, List *joinrels)
104104
lfirsti(innerrel->relids));
105105

106106
/* need to flatten the relids list */
107-
joinrel->relids = intAppend(outerrelids, innerrelids);
107+
joinrel->relids = nconc(listCopy(outerrelids),
108+
listCopy(innerrelids));
108109

109110
/*
110111
* 1. Consider mergejoin paths where both relations must be
@@ -213,11 +214,11 @@ sort_inner_and_outer(RelOptInfo *joinrel,
213214
{
214215
xmergeinfo = (MergeInfo *) lfirst(i);
215216

216-
outerkeys = extract_path_keys(xmergeinfo->jmethod.jmkeys,
217+
outerkeys = make_pathkeys_from_joinkeys(xmergeinfo->jmethod.jmkeys,
217218
outerrel->targetlist,
218219
OUTER);
219220

220-
innerkeys = extract_path_keys(xmergeinfo->jmethod.jmkeys,
221+
innerkeys = make_pathkeys_from_joinkeys(xmergeinfo->jmethod.jmkeys,
221222
innerrel->targetlist,
222223
INNER);
223224

@@ -352,7 +353,7 @@ match_unsorted_outer(RelOptInfo *joinrel,
352353
innerrel->width, false))));
353354
if (!path_is_cheaper_than_sort)
354355
{
355-
varkeys = extract_path_keys(matchedJoinKeys,
356+
varkeys = make_pathkeys_from_joinkeys(matchedJoinKeys,
356357
innerrel->targetlist,
357358
INNER);
358359
}
@@ -473,7 +474,7 @@ match_unsorted_inner(RelOptInfo *joinrel,
473474

474475
if (temp2)
475476
{
476-
List *outerkeys = extract_path_keys(matchedJoinKeys,
477+
List *outerkeys = make_pathkeys_from_joinkeys(matchedJoinKeys,
477478
outerrel->targetlist,
478479
OUTER);
479480
List *merge_pathkeys = new_join_pathkeys(outerkeys,
@@ -551,10 +552,12 @@ hash_inner_and_outer(RelOptInfo *joinrel,
551552
foreach(i, hashinfo_list)
552553
{
553554
xhashinfo = (HashInfo *) lfirst(i);
554-
outerkeys = extract_path_keys(((JoinMethod *) xhashinfo)->jmkeys,
555+
outerkeys = make_pathkeys_from_joinkeys(
556+
((JoinMethod *) xhashinfo)->jmkeys,
555557
outerrel->targetlist,
556558
OUTER);
557-
innerkeys = extract_path_keys(((JoinMethod *) xhashinfo)->jmkeys,
559+
innerkeys = make_pathkeys_from_joinkeys(
560+
((JoinMethod *) xhashinfo)->jmkeys,
558561
innerrel->targetlist,
559562
INNER);
560563
hash_pathkeys = new_join_pathkeys(outerkeys,

src/backend/optimizer/path/joinrels.c

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@
77
*
88
*
99
* IDENTIFICATION
10-
* $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinrels.c,v 1.30 1999/02/18 06:00:46 momjian Exp $
10+
* $Header: /cvsroot/pgsql/src/backend/optimizer/path/joinrels.c,v 1.31 1999/02/22 05:26:20 momjian Exp $
1111
*
1212
*-------------------------------------------------------------------------
1313
*/
@@ -62,7 +62,7 @@ make_rels_by_joins(Query *root, List *old_rels)
6262
joined_rels = make_rels_by_clauseless_joins(old_rel,
6363
root->base_rel_list);
6464
joined_rels = append(joined_rels,
65-
make_rels_by_clauseless_joins(old_rel,
65+
make_rels_by_clauseless_joins(old_rel,
6666
old_rels));
6767
}
6868

@@ -235,9 +235,11 @@ make_join_rel(RelOptInfo *outer_rel, RelOptInfo *inner_rel, JoinInfo *joininfo)
235235
if (joininfo)
236236
joinrel->restrictinfo = joininfo->jinfo_restrictinfo;
237237

238-
joinrel_joininfo_list = new_joininfo_list(append(outer_rel->joininfo,
239-
inner_rel->joininfo),
240-
intAppend(outer_rel->relids, inner_rel->relids));
238+
joinrel_joininfo_list = new_joininfo_list(
239+
append(outer_rel->joininfo,
240+
inner_rel->joininfo),
241+
nconc(listCopy(outer_rel->relids),
242+
listCopy(inner_rel->relids)));
241243

242244
joinrel->joininfo = joinrel_joininfo_list;
243245

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