mirror of
https://github.com/postgres/postgres.git
synced 2025-07-08 11:42:09 +03:00
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...
This commit is contained in:
@ -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);
|
||||
}
|
||||
|
Reference in New Issue
Block a user