mirror of
https://github.com/postgres/postgres.git
synced 2025-05-02 11:44:50 +03:00
Update optimizer comments.
This commit is contained in:
parent
19cc38b28d
commit
ae12e25263
@ -7,7 +7,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/prune.c,v 1.18 1999/02/04 01:46:58 momjian Exp $
|
* $Header: /cvsroot/pgsql/src/backend/optimizer/path/Attic/prune.c,v 1.19 1999/02/04 19:20:11 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -64,16 +64,18 @@ prune_joinrel(RelOptInfo *rel, List *other_rels)
|
|||||||
List *i = NIL;
|
List *i = NIL;
|
||||||
List *result = NIL;
|
List *result = NIL;
|
||||||
|
|
||||||
foreach(i, other_rels)
|
foreach(r1, other_rels)
|
||||||
{
|
{
|
||||||
RelOptInfo *other_rel = (RelOptInfo *) lfirst(i);
|
RelOptInfo *other_rel = (RelOptInfo *) lfirst(r1);
|
||||||
|
|
||||||
if (same(rel->relids, other_rel->relids))
|
if (same(rel->relids, other_rel->relids))
|
||||||
{
|
/*
|
||||||
|
* This are on the same relations,
|
||||||
|
* so get the best of their pathlists.
|
||||||
|
*/
|
||||||
rel->pathlist = add_pathlist(rel,
|
rel->pathlist = add_pathlist(rel,
|
||||||
rel->pathlist,
|
rel->pathlist,
|
||||||
other_rel->pathlist);
|
other_rel->pathlist);
|
||||||
}
|
|
||||||
else
|
else
|
||||||
result = nconc(result, lcons(other_rel, NIL));
|
result = nconc(result, lcons(other_rel, NIL));
|
||||||
}
|
}
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
*
|
*
|
||||||
*
|
*
|
||||||
* IDENTIFICATION
|
* IDENTIFICATION
|
||||||
* $Header: /cvsroot/pgsql/src/backend/optimizer/util/pathnode.c,v 1.17 1999/02/04 01:46:59 momjian Exp $
|
* $Header: /cvsroot/pgsql/src/backend/optimizer/util/pathnode.c,v 1.18 1999/02/04 19:20:12 momjian Exp $
|
||||||
*
|
*
|
||||||
*-------------------------------------------------------------------------
|
*-------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
@ -101,21 +101,24 @@ set_cheapest(RelOptInfo *parent_rel, List *pathlist)
|
|||||||
List *
|
List *
|
||||||
add_pathlist(RelOptInfo *parent_rel, List *unique_paths, List *new_paths)
|
add_pathlist(RelOptInfo *parent_rel, List *unique_paths, List *new_paths)
|
||||||
{
|
{
|
||||||
List *x;
|
List *p1;
|
||||||
Path *new_path;
|
|
||||||
|
foreach(p1, new_paths)
|
||||||
|
{
|
||||||
|
Path *new_path = (Path *) lfirst(p1);
|
||||||
Path *old_path;
|
Path *old_path;
|
||||||
bool noOther;
|
bool noOther;
|
||||||
|
|
||||||
foreach(x, new_paths)
|
/* Is this new path already in unique_paths? */
|
||||||
{
|
|
||||||
new_path = (Path *) lfirst(x);
|
|
||||||
if (member(new_path, unique_paths))
|
if (member(new_path, unique_paths))
|
||||||
continue;
|
continue;
|
||||||
|
|
||||||
|
/* Find best matching path */
|
||||||
old_path = better_path(new_path, unique_paths, &noOther);
|
old_path = better_path(new_path, unique_paths, &noOther);
|
||||||
|
|
||||||
if (noOther)
|
if (noOther)
|
||||||
{
|
{
|
||||||
/* Is a brand new path. */
|
/* This is a brand new path. */
|
||||||
new_path->parent = parent_rel;
|
new_path->parent = parent_rel;
|
||||||
unique_paths = lcons(new_path, unique_paths);
|
unique_paths = lcons(new_path, unique_paths);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user