diff options
author | Tom Lane <tgl@sss.pgh.pa.us> | 2000-01-09 00:26:47 +0000 |
---|---|---|
committer | Tom Lane <tgl@sss.pgh.pa.us> | 2000-01-09 00:26:47 +0000 |
commit | 166b5c1def56a8c43536ac64bd0ba92517f67765 (patch) | |
tree | 09a047af2ae3b27e0c071a2fd1fbd32785a66190 /src/backend/optimizer/path/tidpath.c | |
parent | 69d4299e3e534686274480ba245566914932c017 (diff) |
Another round of planner/optimizer work. This is just restructuring and
code cleanup; no major improvements yet. However, EXPLAIN does produce
more intuitive outputs for nested loops with indexscans now...
Diffstat (limited to 'src/backend/optimizer/path/tidpath.c')
-rw-r--r-- | src/backend/optimizer/path/tidpath.c | 23 |
1 files changed, 10 insertions, 13 deletions
diff --git a/src/backend/optimizer/path/tidpath.c b/src/backend/optimizer/path/tidpath.c index 9e618f7a872..39504bb1e07 100644 --- a/src/backend/optimizer/path/tidpath.c +++ b/src/backend/optimizer/path/tidpath.c @@ -8,7 +8,7 @@ * * * IDENTIFICATION - * $Header: /cvsroot/pgsql/src/backend/optimizer/path/tidpath.c,v 1.1 1999/11/23 20:06:55 momjian Exp $ + * $Header: /cvsroot/pgsql/src/backend/optimizer/path/tidpath.c,v 1.2 2000/01/09 00:26:33 tgl Exp $ * *------------------------------------------------------------------------- */ @@ -241,30 +241,27 @@ List *TidqualFromRestrictinfo(List *relids, List * restrictinfo) List * create_tidscan_joinpaths(RelOptInfo *rel) { - List *rlst = NIL, *lst; - TidPath *pathnode = (TidPath *)0; - List *restinfo, *tideval; + List *rlst = NIL, + *lst; + TidPath *pathnode = (TidPath *) NULL; + List *restinfo, + *tideval; foreach (lst, rel->joininfo) { - JoinInfo *joininfo = (JoinInfo *)lfirst(lst); + JoinInfo *joininfo = (JoinInfo *)lfirst(lst); + restinfo = joininfo->jinfo_restrictinfo; tideval = TidqualFromRestrictinfo(rel->relids, restinfo); - if (tideval && length(tideval) == 1) + if (length(tideval) == 1) { pathnode = makeNode(TidPath); pathnode->path.pathtype = T_TidScan; pathnode->path.parent = rel; - pathnode->path.path_cost = 0.0; pathnode->path.pathkeys = NIL; - - pathnode->path.path_cost = cost_tidscan(tideval); + pathnode->path.path_cost = cost_tidscan(rel, tideval); pathnode->tideval = tideval; - /* - pathnode->tideval = copyObject(tideval); - freeList(tideval); - */ pathnode->unjoined_relids = joininfo->unjoined_relids; rlst = lappend(rlst, pathnode); } |